首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Happstack创建JSON Rest API?JSON身体?

如何使用Happstack创建JSON Rest API?JSON身体?
EN

Stack Overflow用户
提问于 2012-01-15 06:16:57
回答 1查看 1.9K关注 0票数 8

我正在尝试使用Happstack创建一个JSON REST api。它应该允许带有JSON主体的帖子。我该怎么做呢?happstack的API中的所有函数似乎都是根据参数名进行查找的。它认为正文始终是url编码的。

如果不能使用Happstack,我应该使用哪个框架?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-15 06:42:09

好吧,这是我想出来的。

代码语言:javascript
复制
{-# LANGUAGE OverloadedStrings, DeriveDataTypeable #-}
import qualified Data.ByteString.Lazy.Char8 as L
import Happstack.Server
import Happstack.Server.Types
import Control.Monad.IO.Class (liftIO)

import Data.Data (Data, Typeable)

-- easiest to serialize/deserialize objects
data Unit = Unit { x :: Int, y :: Int } deriving (Show, Eq, Data, Typeable)

-- put this function in a library somewhere
getBody :: ServerPart L.ByteString
getBody = do
    req  <- askRq 
    body <- liftIO $ takeRequestBody req 
    case body of 
        Just rqbody -> return . unBody $ rqbody 
        Nothing     -> return "" 

myRoute :: ServerPart Response
myRoute = do
    body <- getBody -- it's a ByteString
    let unit = fromJust $ A.decode body :: Unit -- how to parse json
    ok $ toResponse $ A.encode unit -- how to send json back. 
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8865793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档