servant-swagger-ui-redoc-0.3.3.1.22.3: Servant swagger ui: ReDoc theme

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

Servant.Swagger.UI.ReDoc

Contents

Description

Provides SwaggerUI and corresponding redocSchemaUIServer to embed ReDoc 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 = redocSchemaUIServer swaggerDoc
    :<|> (pure "Hello World" :<|> catEndpoint)
  where
    catEndpoint name = pure $ Cat name False
Synopsis

Swagger UI API

type SwaggerSchemaUI (dir :: Symbol) (schema :: Symbol) = SwaggerSchemaUI' dir (schema :> Get (JSON ': ([] :: [Type])) 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 :<|> (dir :> (Get (HTML ': ([] :: [Type])) (SwaggerUiHtml dir api) :<|> (("index.html" :> Get (HTML ': ([] :: [Type])) (SwaggerUiHtml dir api)) :<|> Raw))) #

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

redocSchemaUIServer' :: Server api -> Server (SwaggerSchemaUI' dir api) Source #

Use a custom server to serve the Swagger spec source.

ReDoc theme