name: servant-docs version: 0.2 synopsis: generate API docs for your servant webservice description: Library for generating API docs from a servant API definition. . Runnable example below that prints API docs in markdown. . > {-# LANGUAGE DataKinds #-} > {-# LANGUAGE PolyKinds #-} > {-# LANGUAGE TypeFamilies #-} > {-# LANGUAGE DeriveGeneric #-} > {-# LANGUAGE TypeOperators #-} > {-# LANGUAGE FlexibleInstances #-} > {-# LANGUAGE OverloadedStrings #-} > > import Data.Proxy > import Data.Text > import Servant > > -- our type for a Greeting message > data Greet = Greet { _msg :: Text } > deriving (Generic, Show) > > -- we get our JSON serialization for free > instance FromJSON Greet > instance ToJSON Greet > > -- we provide a sample value for the 'Greet' type > instance ToSample Greet where > toSample = Just g > > where g = Greet "Hello, haskeller!" > > instance ToParam (QueryParam "capital" Bool) where > toParam _ = > DocQueryParam "capital" > ["true", "false"] > "Get the greeting message in uppercase (true) or not (false). Default is false." > > instance ToCapture (Capture "name" Text) where > toCapture _ = DocCapture "name" "name of the person to greet" > > instance ToCapture (Capture "greetid" Text) where > toCapture _ = DocCapture "greetid" "identifier of the greet msg to remove" > > -- API specification > type TestApi = > "hello" :> Capture "name" Text :> QueryParam "capital" Bool :> Get Greet > :<|> "greet" :> RQBody Greet :> Post Greet > :<|> "delete" :> Capture "greetid" Text :> Delete > > testApi :: Proxy TestApi > testApi = Proxy > > -- Generate the Documentation's ADT > greetDocs :: API > greetDocs = docs testApi > > main :: IO () > main = putStrLn $ markdown greetDocs license: BSD3 license-file: LICENSE author: Alp Mestanogullari, Sönke Hahn, Julian K. Arni maintainer: alpmestan@gmail.com copyright: 2014 Zalora South East Asia Pte Ltd category: Web build-type: Simple cabal-version: >=1.10 tested-with: GHC >= 7.8 homepage: http://haskell-servant.github.io/ Bug-reports: http://github.com/haskell-servant/servant-docs/issues source-repository head type: git location: http://github.com/haskell-servant/servant-docs.git library exposed-modules: Servant.Docs build-depends: base >=4.7 && <5 , aeson , bytestring , hashable , lens , servant >= 0.2 , string-conversions , system-filepath , unordered-containers hs-source-dirs: src default-language: Haskell2010 ghc-options: -Wall executable greet-docs main-is: greet.hs hs-source-dirs: example ghc-options: -Wall build-depends: base, aeson, servant, servant-docs, text default-language: Haskell2010