apiary

Version 2.1.2 revision 1 uploaded by winterland.

Package meta

Synopsis
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.

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)

Author
HirotomoMoriwaki<philopon.dependence@gmail.com>
Bug reports
https://github.com/winterland1989/apiary/issues
Category
Web
Copyright
(c) 2014-2015 Hirotomo Moriwaki
Homepage
https://github.com/winterland1989/apiary
Maintainer
HirotomoMoriwaki<philopon.dependence@gmail.com>, 韩冬<drkoster@qq.com>
Package URL
n/a
Stability
stable

Components