packages feed

apiary-1.2.0: apiary.cabal

name:                apiary
version:             1.2.0
synopsis:            Simple and type safe web framework that can be automatically generate 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
  &#32;&#32;&#32;&#32;&#32;&#32;(age, name) <- [params|age,name|]
  &#32;&#32;&#32;&#32;&#32;&#32;guard (age >= 18)
  &#32;&#32;&#32;&#32;&#32;&#32;contentType &#34;text/html&#34;
  &#32;&#32;&#32;&#32;&#32;&#32;mapM_ lazyBytes [&#34;&#60;h1&#62;Hello, &#34;, name, &#34;!&#60;/h1&#62;\\n&#34;]
  @
  .
  @
  $ curl localhost:3000
  404 Page Notfound.
  $ curl 'localhost:3000/20?name=arice'
  &#60;h1&#62;Hello, arice!&#60;/h1&#62;
  $ 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://best-haskell.herokuapp.com/api/documentation>).
  .
  more examples: <https://github.com/philopon/apiary/blob/v1.2.0/examples/>
  .
  live demo: <http://best-haskell.herokuapp.com/> (source code: <https://github.com/philopon/best-haskell>)

license:             MIT
license-file:        LICENSE
author:              HirotomoMoriwaki<philopon.dependence@gmail.com>
maintainer:          HirotomoMoriwaki<philopon.dependence@gmail.com>
Homepage:            https://github.com/philopon/apiary
Bug-reports:         https://github.com/philopon/apiary/issues
copyright:           (c) 2014 Hirotomo Moriwaki
category:            Web
build-type:          Simple
stability:           stable
extra-source-files:  static/api-documentation.min.js
                   , static/jquery.cookie-1.4.1.min.js
                   , static/api-documentation.min.css
                   , static/jquery-2.1.1.min.js
                   , static/bootstrap.min.css
                   , static/bootstrap.min.js
                   , CHANGELOG.md
cabal-version:       >=1.10

library
  exposed-modules:     Web.Apiary
                       Web.Apiary.Develop
                       Web.Apiary.Heroku

                       Control.Monad.Apiary
                       Control.Monad.Apiary.Filter
                       Control.Monad.Apiary.Action

                       Data.Apiary.Extension
                       Data.Apiary.Param
                       Data.Apiary.Dict
                       Data.Apiary.Method
                       Data.Apiary.Compat
                       Data.Apiary.Document
                       Data.Apiary.Document.Html

  other-modules:       Data.Apiary.Document.Internal
                       Data.Apiary.Extension.Internal
                       Control.Monad.Apiary.Internal
                       Control.Monad.Apiary.Filter.Internal
                       Control.Monad.Apiary.Action.Internal
                       Control.Monad.Apiary.Filter.Internal.Capture
                       Control.Monad.Apiary.Filter.Internal.Capture.TH
  build-depends:       base                 >=4.6   && <4.8
                     , template-haskell     >=2.8   && <2.10

                     , transformers         >=0.2   && <0.5
                     , transformers-base    >=0.4   && <0.5
                     , mtl                  >=2.1   && <2.3
                     , monad-control        >=0.3   && <0.4
                     , exceptions           >=0.6   && <0.7

                     , http-types           >=0.8   && <0.9
                     , mime-types           >=0.1   && <0.2

                     , text                 >=1.1   && <1.3
                     , bytestring           >=0.10  && <0.11
                     , bytestring-lexing    >=0.4   && <0.5
                     , blaze-builder        >=0.3   && <0.4
                     , blaze-html           >=0.7   && <0.8
                     , blaze-markup         >=0.6   && <0.7
                     , case-insensitive     >=1.1   && <1.3
                     , vault                >=0.3   && <0.4

                     , data-default-class   >=0.0   && <0.1
                     , unordered-containers >=0.2   && <0.3
                     , hashable             >=1.1   && <1.3
                     , time                 >=1.4   && <1.6
                     , process              >=1.2   && <1.3
                     , unix-compat          >=0.4   && <0.5
                     , http-date            >=0.0   && <0.1

                     , wai                  >=3.0   && <3.1
                     , wai-extra            >=3.0   && <3.1

  default-extensions:  OverlappingInstances
  hs-source-dirs:      src
  ghc-options:         -O2 -Wall
  ghc-prof-options:    -O2 -Wall -auto-all
  default-language:    Haskell2010

test-suite test-framework
  main-is:             main.hs
  other-modules:       Application
                     , Method
  type:                exitcode-stdio-1.0
  build-depends:       base                 >=4.6   && <4.8
                     , mtl                  >=2.1   && <2.3
                     , test-framework       >=0.8   && <0.9
                     , test-framework-hunit >=0.3   && <0.4
                     , apiary
                     , bytestring           >=0.10  && <0.11
                     , http-types           >=0.8   && <0.9
                     , HUnit                >=1.2   && <1.3
                     , wai                  >=3.0   && <3.1
                     , wai-extra            >=3.0   && <3.1

  hs-source-dirs:      test
  ghc-options:         -O2 -Wall -fno-warn-missing-signatures
  default-language:    Haskell2010

source-repository head
  type:     git
  location: git://github.com/philopon/apiary.git