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 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 && <0.12), base (>=4.6 && <4.9), blaze-builder (>=0.3 && <0.5), blaze-html (>=0.7 && <0.9), blaze-markup (>=0.6 && <0.8), bytestring (==0.10.*), bytestring-read (>=0.2 && <0.4), case-insensitive (>=1.1 && <1.3), data-default-class (==0.0.*), exceptions (>=0.6 && <0.9), hashable (>=1.1 && <1.3), 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), process (==1.2.*), resourcet (>=0.4.6 && <1.2), stringsearch (==0.3.*), template-haskell (>=2.8 && <2.11), text (>=1.1 && <1.3), time (>=1.4 && <1.6), transformers (>=0.2 && <0.5), transformers-base (==0.4.*), types-compat (==0.1.*), unix-compat (==0.4.*), unordered-containers (==0.2.*), vault (==0.3.*), wai (>=3.0 && <3.3), wai-extra (>=3.0.15 && <3.1), web-routing (==0.6.*) [details]
License MIT
Copyright (c) 2014-2015 Hirotomo Moriwaki
Author HirotomoMoriwaki<philopon.dependence@gmail.com>
Maintainer HirotomoMoriwaki<philopon.dependence@gmail.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 Mon Mar 28 08:17:29 UTC 2016
Distributions NixOS:2.1.2
Downloads 25794 total (148 in the last 30 days)
Rating 2.5 (votes: 3) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
All reported builds failed as of 2016-11-27 [all 2 reports]
Hackage Matrix CI

Modules

  • Control
    • Monad
      • Control.Monad.Apiary
        • Control.Monad.Apiary.Action
        • Control.Monad.Apiary.Filter
          • Control.Monad.Apiary.Filter.Capture
  • Data
    • Apiary
      • Data.Apiary.Document
        • Data.Apiary.Document.Html
      • Data.Apiary.Extension
      • Data.Apiary.Method
      • Data.Apiary.Param
  • Web
    • Web.Apiary
      • Web.Apiary.Develop
      • Web.Apiary.Heroku

Downloads

Maintainer's Corner

For package maintainers and hackage trustees