adapt to the servant/servant-server split

This commit is contained in:
Alp Mestanogullari 2014-12-10 16:43:43 +01:00
parent d831cf944f
commit 2d2c46ea12
5 changed files with 60 additions and 59 deletions

2
Setup.hs Normal file
View file

@ -0,0 +1,2 @@
import Distribution.Simple
main = defaultMain

52
docs.sh Normal file
View file

@ -0,0 +1,52 @@
SERVANT_DIR=/tmp/servant-docs-gh-pages
# Make a temporary clone
rm -rf $SERVANT_DIR
git clone . $SERVANT_DIR
cd $SERVANT_DIR
# Make sure to pull the latest
git remote add haskell-servant git@github.com:haskell-servant/servant-docs.git
git fetch haskell-servant
git reset --hard haskell-servant/gh-pages
# Clear everything away
git rm -rf $SERVANT_DIR/*
# Switch back and build the haddocks
cd -
cabal configure --builddir=$SERVANT_DIR
cabal haddock --hoogle --hyperlink-source --html-location='https://hackage.haskell.org/package/$pkg-$version/docs' --builddir=$SERVANT_DIR
commit_hash=$(git rev-parse HEAD)
# Move the HTML docs to the root
cd $SERVANT_DIR
rm *
rm -rf build
mv doc/html/servant-docs/* .
rm -r doc/
# Add everything
git add .
git commit -m "Built from $commit_hash"
# Push to update the pages
git push haskell-servant HEAD:gh-pages
rm -rf $SERVANT_DIR

View file

@ -4,9 +4,10 @@
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE OverloadedStrings #-}
import Data.Aeson
import Data.Proxy
import Data.Text
import GHC.Generics
import Servant
import Servant.API
import Servant.Docs
-- * Example

View file

@ -1,64 +1,10 @@
name: servant-docs
version: 0.2
version: 0.2.1
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
Runnable example <https://github.com/haskell-servant/servant-docs/blob/master/example/greet.hs here>.
license: BSD3
license-file: LICENSE
author: Alp Mestanogullari, Sönke Hahn, Julian K. Arni
@ -83,7 +29,7 @@ library
, bytestring
, hashable
, lens
, servant >= 0.2
, servant >= 0.2.1
, string-conversions
, system-filepath
, text

View file

@ -119,7 +119,7 @@ import Data.Text (Text, pack, unpack)
import Data.String.Conversions
import GHC.Generics
import GHC.TypeLits
import Servant
import Servant.API
import qualified Data.HashMap.Strict as HM