servant-swagger-ui-jensoleg-0.3: Servant swagger ui: Jens-Ole Graulund theme

Copyright(C) 2016-2018 Oleg Grenrus
LicenseBSD-3-Clause
MaintainerOleg Grenrus <oleg.grenrus@iki.fi>
Safe HaskellNone
LanguageHaskell2010

Servant.Swagger.UI.JensOleG

Contents

Description

Provides SwaggerUI and corresponding jensolegSwaggerSchemaUIServer to embed Jens-Ole Graulund themed swagger ui into the application.

All of the UI files are embedded into the binary.

An example:

-- | Actual API.
type BasicAPI = Get '[PlainText, JSON] Text
    :<|> "cat" :> Capture ":name" CatName :> Get '[JSON] Cat

-- | API type with bells and whistles, i.e. schema file and swagger-ui.
type API = SwaggerSchemaUI "swagger-ui" "swagger.json"
    :<|> BasicAPI

-- | Servant server for an API
server :: Server API
server = jensolegwaggerSchemaUIServer swaggerDoc
    :<|> (pure "Hello World" :<|> catEndpoint)
  where
    catEndpoint name = pure $ Cat name False

Synopsis

Swagger UI API

type SwaggerSchemaUI (dir :: Symbol) (schema :: Symbol) = SwaggerSchemaUI' dir ((:>) Symbol schema (Get ((:) * JSON ([] *)) Swagger)) #

Swagger schema + ui api.

SwaggerSchemaUI "swagger-ui" "swagger.json" will result into following hierarchy:

/swagger.json
/swagger-ui
/swagger-ui/index.html
/swagger-ui/...

type SwaggerSchemaUI' (dir :: Symbol) api = (:<|>) api ((:>) Symbol dir ((:<|>) (Get ((:) * HTML ([] *)) (SwaggerUiHtml dir api)) ((:<|>) ((:>) Symbol "index.html" (Get ((:) * HTML ([] *)) (SwaggerUiHtml dir api))) Raw))) #

Use SwaggerSchemaUI' when you need even more control over where swagger.json is served (e.g. subdirectory).

jensolegSwaggerSchemaUIServer :: Server api ~ Handler Swagger => Swagger -> Server (SwaggerSchemaUI' dir api) Source #

Serve alternative Swagger UI.

Current version: 79f3bba07b070cfab1d8c245c4f9229052e20a1a

See https://github.com/jensoleg/swagger-ui

ReDoc theme