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)

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 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 && <0.11), bytestring-lexing (>=0.5 && <0.6), case-insensitive (>=1.1 && <1.3), data-default-class (>=0.0 && <0.1), exceptions (>=0.6 && <0.9), ghc-prim, hashable (>=1.1 && <1.3), hetero-dict (>=0.1.1 && <0.1.2), http-date (>=0.0 && <0.1), http-types (>=0.8 && <0.10), mime-types (>=0.1 && <0.2), 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 && <0.4), 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 && <0.5), unordered-containers (>=0.2 && <0.3), vault (>=0.3 && <0.4), 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>
Revised Revision 1 made by winterland at 2018-03-15T09:05:51Z
Category Web
Home page https://github.com/winterland1989/apiary
Bug tracker https://github.com/winterland1989/apiary/issues
Source repo head: git clone git://github.com/philopon/apiary.git
Uploaded by winterland at 2017-10-27T10:14:50Z
Distributions
Reverse Dependencies 15 direct, 0 indirect [details]
Downloads 56562 total (161 in the last 30 days)
Rating 2.5 (votes: 3) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2017-10-27 [all 1 reports]