Description
Simple and type safe web framework that generate web API documentation.
Description
Simple and type safe web framework that can be automatically generate API documentation.
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE OverloadedStrings #-}
import Web.Apiary
import Network.Wai.Handler.Warp
import qualified Data.ByteString.Lazy.Char8 as L
main :: IO ()
main = runApiary (run 3000) def $ do
[capture|/age::Int|] . ([key|name|] =: pLazyByteString) . method GET . action $ do
(age, name) <- [params|age,name|]
guard (age >= 18)
contentType "text/html"
mapM_ appendLazyBytes ["<h1>Hello, ", name, "!</h1>\n"]
$ curl localhost:3000
404 Page Notfound.
$ curl 'localhost:3000/20?name=arice'
<h1>Hello, arice!</h1>
$ curl 'localhost:3000/15?name=bob'
404 Page Notfound.
$ curl -XPOST 'localhost:3000/20?name=arice'
404 Page Notfound.
High performance(benchmark: https://github.com/philopon/apiary-benchmark).
Nestable route handling(Apiary Monad; capture, method and more.).
Type safe route filter.
Auto generate API documentation(example: http://find-hackage.herokuapp.com/api/documentation).
more examples: https://github.com/philopon/apiary/blob/v1.4.0/examples/
live demo: http://find-hackage.herokuapp.com/ (source code: https://github.com/philopon/find-hackage)