servant-swagger-0.0.0.1: Swagger

Safe HaskellNone
LanguageHaskell2010

Servant.Swagger

Contents

Synopsis

Classes

class HasSwagger h where Source

Swaggin'

Methods

toSwaggerDocs :: Proxy h -> SwaggerRoute -> SwagResult Source

Instances

HasSwagger * Raw Source

Raw holds no verb / body information

(HasSwagger * left, HasSwagger * right) => HasSwagger * ((:<|>) left right) Source 
(ToSwaggerModel returnType, ToVerb ([*] -> * -> k) verb, SwaggerAcceptTypes xs, ToResponseHeaders [*] ls) => HasSwagger k (verb xs (Headers ls returnType)) Source 
(ToSwaggerModel returnType, ToVerb ([*] -> * -> k) verb, SwaggerAcceptTypes xs, ToResponseHeaders [*] ls) => HasSwagger k (verb xs (Headers ls [returnType])) Source 
(ToSwaggerModel returnType, ToVerb ([*] -> * -> k) verb, SwaggerAcceptTypes xs) => HasSwagger k (verb xs [returnType]) Source 
(ToSwaggerModel returnType, ToVerb ([*] -> * -> k) verb, SwaggerAcceptTypes xs) => HasSwagger k (verb xs returnType) Source 
HasSwagger k rest => HasSwagger * ((:>) (k -> *) k (MatrixParam k typ) rest) Source

Swagger doesn't support Raw, bypass

(SwaggerAcceptTypes ctypes, ToSwaggerModel model, HasSwagger k rest) => HasSwagger * ((:>) * k (ReqBody * ctypes [model]) rest) Source

ReqBody Array

(SwaggerAcceptTypes ctypes, ToSwaggerModel model, HasSwagger k rest) => HasSwagger * ((:>) * k (ReqBody * ctypes model) rest) Source

ReqBody Object

(KnownSymbol sym, ToSwaggerDescription * typ, ToSwaggerParamType * typ, HasSwagger k rest) => HasSwagger * ((:>) * k (Header sym typ) rest) Source

Swagger Header

(ToSwaggerDescription Symbol typ, ToSwaggerParamType Symbol typ, HasSwagger k rest) => HasSwagger * ((:>) * k (MatrixFlag typ) rest) Source

Swagger doesn't support matrix flags, bypass

(ToSwaggerDescription Symbol sym, KnownSymbol sym, HasSwagger k rest) => HasSwagger * ((:>) * k (QueryFlag sym) rest) Source

Query Flag

(ToSwaggerDescription k1 typ, ToSwaggerParamType k1 typ, KnownSymbol sym, HasSwagger k rest) => HasSwagger * ((:>) * k (QueryParams k sym typ) rest) Source 
(ToSwaggerDescription k1 typ, ToSwaggerParamType k1 typ, KnownSymbol sym, HasSwagger k rest) => HasSwagger * ((:>) * k (QueryParam k sym typ) rest) Source 
(ToSwaggerDescription k1 typ, ToSwaggerParamType k1 typ, KnownSymbol sym, HasSwagger k rest) => HasSwagger * ((:>) * k (Capture k sym typ) rest) Source 
(HasSwagger k rest, KnownSymbol sym) => HasSwagger * ((:>) Symbol k sym rest) Source 

class ToHeader a where Source

Instances

(ToSwaggerParamType * headerType, KnownSymbol headerName, ToHeaderDescription Symbol headerName) => ToHeader * (Header headerName headerType) Source 

class ToModelExample model where Source

Methods

toExample :: Proxy model -> Maybe Value Source

Types

data SwaggerAPI Source

This is the root document object for the API specification.

Constructors

SwaggerAPI 

Fields

_swaggerInfo :: Info

Required, provides metadata about the API

_swaggerPaths :: HashMap PathName SwaggerOperation

Required

_swaggerSchemes :: Maybe [Scheme]

Schemes for this API (i.e HTTP/HTTPS)

_swaggerDefinitions :: HashMap ModelName SwaggerModel
 
_swaggerTags :: Maybe [Tag]

A list of tags that provide additional metadat

_swaggerBasePath :: Maybe BasePath

The base path upon which this API is served

_swaggerHostName :: Maybe HostName

Host name or IP

_swaggerSecurityDefintions :: Maybe [SecurityDefinition]

Security scheme definitions that can be used across the specification.

_swaggerExternalDocs :: Maybe ExternalDocs
 

newtype SwaggerRouteInfo a Source

Constructors

SwaggerRouteInfo SwagResult 

Instances

data Scheme Source

Constructors

Http 
Https 
Ws 
Wss 

data Response Source

A container for the expected responses of an operation.

Constructors

Response 

Fields

_responseDescription :: Text

Description of Response

_responseModelName :: ModelName

Model this Response returns

_responseHeaders :: HashMap Text SwaggerHeader

HashMap of headers

_responseIsArray :: Bool

Does the response return an Array?

_responseCode :: Code

Response code this route returns

data SwaggerHeader Source

A Swagger metadata for a Servant header

Constructors

SwaggerHeader 

Fields

headerDescription :: Text

Header description

headerType :: SwaggerParamType

Type of Header

headerName :: Text

Name of Header

defResponse :: Response Source

Default Response for a Path

data Tag Source

Allows adding meta data to a single tag that is used by the Operation Object

Constructors

Tag 

Fields

_tagName :: TagName

Name of Tag

_tagDescription :: TagDescription

Description of Tag

newtype TagName Source

Name of Tag, that can be applied to an operation

Constructors

TagName Text 

Swaggadelic

swagger :: HasSwagger swagger => Proxy swagger -> SwaggerRouteInfo swagger -> BasePath -> Info -> [Scheme] -> Maybe HostName -> [SecurityDefinition] -> SwaggerAPI Source

swaggerPathInfo :: (IsElem endpoint layout, HasLink endpoint, HasSwagger endpoint, HasSwagger layout) => Proxy endpoint -> Proxy layout -> SwaggerRouteDescription -> SwaggerRouteInfo layout Source

emptyRouteDescription :: SwaggerRouteDescription Source

Lenses

swagRouteTags :: Lens' SwaggerRouteDescription [Tag] Source

swagRouteSummary :: Lens' SwaggerRouteDescription PathSummary Source

swagRouteResponses :: Lens' SwaggerRouteDescription (HashMap Code Response) Source

swagRouteOperationId :: Lens' SwaggerRouteDescription (Maybe OperationId) Source

createSwaggerJson :: SwaggerAPI -> IO () Source

Helper to generate swagger.json file