extensible/Servant
mock サーバーとしてランダムな値を返す例
code: (hs)
{- stack script
--resolver lts-12.11
--package extensible
--package servant-mock
--package servant-server
--package warp
-}
{-# LANGUAGE DataKinds #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE OverloadedLabels #-} module Main where
import Data.Extensible
import Servant
import Servant.Mock
import qualified Network.Wai.Handler.Warp as Warp
type Todo = Record
'[ "todoId" >: Int
, "title" >: String
, "done" >: Bool
]
type API = "todo" :> "all" :> Get 'JSON Todo api :: Proxy API
api = Proxy
main :: IO ()
main = do
putStrLn "Listening on port 8080"
Warp.run 8080 $ serve api (mock api Proxy)
実行結果
code: (shell)
[{"done":false,"todoId":-22,"title":"AQ>UfC陌N"},{"done":false,"todoId":-8,"title":"am\u0010\nS䱑S\u001b*8\u0008V(\u0013\u0002L6\"yNㅏp"},...
Todo リストを返す例
code: (hs)
{- stack script
--resolver lts-12.11
--package extensible
--package servant-server
--package warp
-}
{-# LANGUAGE DataKinds #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE OverloadedLabels #-} module Main where
import Data.Extensible
import Servant
import qualified Network.Wai.Handler.Warp as Warp
type Todo = Record
'[ "todoId" >: Int
, "title" >: String
, "done" >: Bool
]
type API = "todo" :> "all" :> Get 'JSON Todo api :: Proxy API
api = Proxy
todoList =
]
server :: Server API
server = pure todoList
main :: IO ()
main = do
putStrLn "Listening on port 8080"
Warp.run 8080 $ serve api server
実行結果
code: (shell)