apiary: Simple and type safe web framework that generate web API documentation.

[ library, mit, web ] [ Propose Tags ]

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)

Versions [faq] 0.1.0.0, 0.1.0.1, 0.2.0.0, 0.3.0.0, 0.3.1.0, 0.3.2.0, 0.4.0.0, 0.4.0.1, 0.4.0.2, 0.4.2.0, 0.4.3.0, 0.4.3.1, 0.4.3.2, 0.5.0.0, 0.5.1.0, 0.6.0.0, 0.6.0.1, 0.6.1.0, 0.7.0.0, 0.8.0.0, 0.9.0.0, 0.10.0, 0.11.0, 0.11.1, 0.11.2, 0.11.3, 0.12.0, 0.12.1, 0.12.2, 0.12.3, 0.12.4, 0.12.5, 0.12.6, 0.12.7, 0.12.8, 0.13.0, 0.14.0, 0.14.0.1, 0.15.0, 0.15.1, 0.15.2, 0.16.0, 0.17.0, 0.17.1, 0.17.2, 1.0.0, 1.1.0, 1.1.1, 1.1.2, 1.1.3, 1.1.4, 1.2.0, 1.2.1, 1.2.2, 1.2.3, 1.3.0, 1.4.0, 1.4.1, 1.4.2, 1.4.3, 1.4.4, 1.4.5, 2.0.0, 2.0.1, 2.0.1.1, 2.0.2, 2.1.0, 2.1.1, 2.1.2 (info)
Change log CHANGELOG.md
Dependencies aeson (>=0.8 && <1.3), base (>=4.7 && <5.0), blaze-builder (>=0.3 && <0.5), blaze-html (>=0.7 && <0.9), blaze-markup (>=0.6 && <0.8), bytestring (==0.10.*), bytestring-lexing (==0.5.*), case-insensitive (>=1.1 && <1.3), data-default-class (==0.0.*), exceptions (>=0.6 && <0.9), ghc-prim, hashable (>=1.1 && <1.3), hetero-dict (==0.1.1.*), http-date (==0.0.*), http-types (>=0.8 && <0.10), mime-types (==0.1.*), monad-control (>=0.3 && <1.1), mtl (>=2.1 && <2.3), primitive, process (>=1.2 && <2.0), resourcet (>=0.4.6 && <1.2), stringsearch (==0.3.*), template-haskell (>=2.8 && <2.13), text (>=1.1 && <1.3), time (>=1.4 && <1.9), transformers (>=0.2 && <0.6), transformers-base (>=0.4 && <0.6), unix-compat (==0.4.*), unordered-containers (==0.2.*), vault (==0.3.*), wai (>=3.0 && <3.3), wai-extra (>=3.0.15 && <3.1) [details]
License MIT
Copyright (c) 2014-2015 Hirotomo Moriwaki
Author HirotomoMoriwaki<philopon.dependence@gmail.com>
Maintainer HirotomoMoriwaki<philopon.dependence@gmail.com>, 韩冬<drkoster@qq.com>
Category Web
Home page https://github.com/philopon/apiary
Bug tracker https://github.com/philopon/apiary/issues
Source repo head: git clone git://github.com/philopon/apiary.git
Uploaded by winterland at Thu Oct 26 11:16:55 UTC 2017
Distributions NixOS:2.1.2
Downloads 35343 total (1044 in the last 30 days)
Rating 2.5 (votes: 3) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Last success reported on 2017-10-26 [all 1 reports]

Modules

[Index]

Downloads

Maintainer's Corner

For package maintainers and hackage trustees