servant-swagger-ui-0.2.4.3.0.20: Servant swagger ui

Copyright(C) 2016 Oleg Grenrus
LicenseBSD3
MaintainerOleg Grenrus <oleg.grenrus@iki.fi>
Safe HaskellNone
LanguageHaskell2010

Servant.Swagger.UI

Contents

Description

Provides SwaggerUI and corresponding swaggerUIServer to embed swagger ui into the application.

All of 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 = swaggerSchemaUIServer swaggerDoc
    :<|> (pure "Hello World" :<|> catEndpoint)
  where
    catEndpoint name = pure $ Cat name False

Synopsis

Swagger UI API

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

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 api = api :<|> (dir :> (Get '[HTML] (SwaggerUiHtml dir api) :<|> (("index.html" :> Get '[HTML] (SwaggerUiHtml dir api)) :<|> Raw))) Source #

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

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

Serve Swagger UI on /dir using api as a Swagger spec source.

swaggerSchemaUIServer :: Swagger -> Server (SwaggerSchemaUI schema dir)

Internals

data SwaggerUiHtml dir api Source #

Index file for swagger ui.

It's configured by the location of swagger schema and directory it lives under.

Implementation detail: the index.html is prepopulated with parameters to find schema file automatically.

Constructors

SwaggerUiHtml Text 

Instances

(KnownSymbol dir, HasLink * api, (~) * Link (MkLink * api), IsElem api api) => ToMarkup (SwaggerUiHtml dir api) Source # 

Official swagger ui

jensoleg theme