webgear-swagger-1.2.0: Composable, type-safe library to build HTTP API servers
Safe HaskellSafe-Inferred
LanguageHaskell2010

WebGear.Swagger.Handler

Description

An implementation of Handler to generate Swagger documentation from WebGear API specifications.

Synopsis

Documentation

newtype SwaggerHandler m a b Source #

A handler that captured Swagger documentation of API specifications.

Constructors

SwaggerHandler 

Instances

Instances details
ArrowError RouteMismatch (SwaggerHandler m :: Type -> Type -> Type) Source # 
Instance details

Defined in WebGear.Swagger.Handler

Category (SwaggerHandler m :: k2 -> k2 -> Type) Source # 
Instance details

Defined in WebGear.Swagger.Handler

Methods

id :: forall (a :: k). SwaggerHandler m a a #

(.) :: forall (b :: k) (c :: k) (a :: k). SwaggerHandler m b c -> SwaggerHandler m a b -> SwaggerHandler m a c #

Arrow (SwaggerHandler m :: Type -> Type -> Type) Source # 
Instance details

Defined in WebGear.Swagger.Handler

Methods

arr :: (b -> c) -> SwaggerHandler m b c #

first :: SwaggerHandler m b c -> SwaggerHandler m (b, d) (c, d) #

second :: SwaggerHandler m b c -> SwaggerHandler m (d, b) (d, c) #

(***) :: SwaggerHandler m b c -> SwaggerHandler m b' c' -> SwaggerHandler m (b, b') (c, c') #

(&&&) :: SwaggerHandler m b c -> SwaggerHandler m b c' -> SwaggerHandler m b (c, c') #

ArrowChoice (SwaggerHandler m :: Type -> Type -> Type) Source # 
Instance details

Defined in WebGear.Swagger.Handler

Methods

left :: SwaggerHandler m b c -> SwaggerHandler m (Either b d) (Either c d) #

right :: SwaggerHandler m b c -> SwaggerHandler m (Either d b) (Either d c) #

(+++) :: SwaggerHandler m b c -> SwaggerHandler m b' c' -> SwaggerHandler m (Either b b') (Either c c') #

(|||) :: SwaggerHandler m b d -> SwaggerHandler m c d -> SwaggerHandler m (Either b c) d #

ArrowPlus (SwaggerHandler m :: Type -> Type -> Type) Source # 
Instance details

Defined in WebGear.Swagger.Handler

Methods

(<+>) :: SwaggerHandler m b c -> SwaggerHandler m b c -> SwaggerHandler m b c #

ArrowZero (SwaggerHandler m :: Type -> Type -> Type) Source # 
Instance details

Defined in WebGear.Swagger.Handler

Methods

zeroArrow :: SwaggerHandler m b c #

Monad m => Handler (SwaggerHandler m :: Type -> Type -> Type) m Source # 
Instance details

Defined in WebGear.Swagger.Handler

Get (SwaggerHandler m :: Type -> Type -> Type) Method Request Source # 
Instance details

Defined in WebGear.Swagger.Trait.Method

Get (SwaggerHandler m :: Type -> Type -> Type) Path Request Source # 
Instance details

Defined in WebGear.Swagger.Trait.Path

Get (SwaggerHandler m :: Type -> Type -> Type) PathEnd Request Source # 
Instance details

Defined in WebGear.Swagger.Trait.Path

Set (SwaggerHandler m :: Type -> Type -> Type) UnknownContentBody Response Source # 
Instance details

Defined in WebGear.Swagger.Trait.Body

Set (SwaggerHandler m :: Type -> Type -> Type) Status Response Source # 
Instance details

Defined in WebGear.Swagger.Trait.Status

(ToSchema val, MIMEType mt) => Get (SwaggerHandler m :: Type -> Type -> Type) (Body mt val) Request Source # 
Instance details

Defined in WebGear.Swagger.Trait.Body

Methods

getTrait :: forall (ts :: [Type]). Prerequisite (Body mt val) ts Request => Body mt val -> SwaggerHandler m (With Request ts) (Either (Absence (Body mt val) Request) (Attribute (Body mt val) Request)) #

KnownSymbol tag => Get (SwaggerHandler m :: Type -> Type -> Type) (PathVar tag val) Request Source # 
Instance details

Defined in WebGear.Swagger.Trait.Path

Methods

getTrait :: forall (ts :: [Type]). Prerequisite (PathVar tag val) ts Request => PathVar tag val -> SwaggerHandler m (With Request ts) (Either (Absence (PathVar tag val) Request) (Attribute (PathVar tag val) Request)) #

(ToSchema val, MIMEType mt) => Set (SwaggerHandler m :: Type -> Type -> Type) (Body mt val) Response Source # 
Instance details

Defined in WebGear.Swagger.Trait.Body

Methods

setTrait :: forall (ts :: [Type]). Body mt val -> (With Response ts -> Response -> Attribute (Body mt val) Response -> With Response (Body mt val ': ts)) -> SwaggerHandler m (With Response ts, Attribute (Body mt val) Response) (With Response (Body mt val ': ts)) #

Trait (SetCookie e name) Response => Set (SwaggerHandler m :: Type -> Type -> Type) (SetCookie e name) Response Source # 
Instance details

Defined in WebGear.Swagger.Trait.Cookie

Methods

setTrait :: forall (ts :: [Type]). SetCookie e name -> (With Response ts -> Response -> Attribute (SetCookie e name) Response -> With Response (SetCookie e name ': ts)) -> SwaggerHandler m (With Response ts, Attribute (SetCookie e name) Response) (With Response (SetCookie e name ': ts)) #

TraitAbsence (Cookie e name val) Request => Get (SwaggerHandler m :: Type -> Type -> Type) (Cookie e name val) Request Source # 
Instance details

Defined in WebGear.Swagger.Trait.Cookie

Methods

getTrait :: forall (ts :: [Type]). Prerequisite (Cookie e name val) ts Request => Cookie e name val -> SwaggerHandler m (With Request ts) (Either (Absence (Cookie e name val) Request) (Attribute (Cookie e name val) Request)) #

KnownSymbol name => Set (SwaggerHandler m :: Type -> Type -> Type) (ResponseHeader 'Optional name val) Response Source # 
Instance details

Defined in WebGear.Swagger.Trait.Header

Methods

setTrait :: forall (ts :: [Type]). ResponseHeader 'Optional name val -> (With Response ts -> Response -> Attribute (ResponseHeader 'Optional name val) Response -> With Response (ResponseHeader 'Optional name val ': ts)) -> SwaggerHandler m (With Response ts, Attribute (ResponseHeader 'Optional name val) Response) (With Response (ResponseHeader 'Optional name val ': ts)) #

KnownSymbol name => Set (SwaggerHandler m :: Type -> Type -> Type) (ResponseHeader 'Required name val) Response Source # 
Instance details

Defined in WebGear.Swagger.Trait.Header

Methods

setTrait :: forall (ts :: [Type]). ResponseHeader 'Required name val -> (With Response ts -> Response -> Attribute (ResponseHeader 'Required name val) Response -> With Response (ResponseHeader 'Required name val ': ts)) -> SwaggerHandler m (With Response ts, Attribute (ResponseHeader 'Required name val) Response) (With Response (ResponseHeader 'Required name val ': ts)) #

(KnownSymbol name, ToParamSchema val, TraitAbsence (RequestHeader 'Optional ps name val) Request) => Get (SwaggerHandler m :: Type -> Type -> Type) (RequestHeader 'Optional ps name val) Request Source # 
Instance details

Defined in WebGear.Swagger.Trait.Header

Methods

getTrait :: forall (ts :: [Type]). Prerequisite (RequestHeader 'Optional ps name val) ts Request => RequestHeader 'Optional ps name val -> SwaggerHandler m (With Request ts) (Either (Absence (RequestHeader 'Optional ps name val) Request) (Attribute (RequestHeader 'Optional ps name val) Request)) #

(KnownSymbol name, ToParamSchema val, TraitAbsence (RequestHeader 'Required ps name val) Request) => Get (SwaggerHandler m :: Type -> Type -> Type) (RequestHeader 'Required ps name val) Request Source # 
Instance details

Defined in WebGear.Swagger.Trait.Header

Methods

getTrait :: forall (ts :: [Type]). Prerequisite (RequestHeader 'Required ps name val) ts Request => RequestHeader 'Required ps name val -> SwaggerHandler m (With Request ts) (Either (Absence (RequestHeader 'Required ps name val) Request) (Attribute (RequestHeader 'Required ps name val) Request)) #

(KnownSymbol name, TraitAbsence (QueryParam 'Optional ps name val) Request) => Get (SwaggerHandler m :: Type -> Type -> Type) (QueryParam 'Optional ps name val) Request Source # 
Instance details

Defined in WebGear.Swagger.Trait.QueryParam

Methods

getTrait :: forall (ts :: [Type]). Prerequisite (QueryParam 'Optional ps name val) ts Request => QueryParam 'Optional ps name val -> SwaggerHandler m (With Request ts) (Either (Absence (QueryParam 'Optional ps name val) Request) (Attribute (QueryParam 'Optional ps name val) Request)) #

(KnownSymbol name, TraitAbsence (QueryParam 'Required ps name val) Request) => Get (SwaggerHandler m :: Type -> Type -> Type) (QueryParam 'Required ps name val) Request Source # 
Instance details

Defined in WebGear.Swagger.Trait.QueryParam

Methods

getTrait :: forall (ts :: [Type]). Prerequisite (QueryParam 'Required ps name val) ts Request => QueryParam 'Required ps name val -> SwaggerHandler m (With Request ts) (Either (Absence (QueryParam 'Required ps name val) Request) (Attribute (QueryParam 'Required ps name val) Request)) #

(TraitAbsence (BasicAuth' x scheme m e a) Request, KnownSymbol scheme) => Get (SwaggerHandler m :: Type -> Type -> Type) (BasicAuth' x scheme m e a) Request Source # 
Instance details

Defined in WebGear.Swagger.Trait.Auth.Basic

Methods

getTrait :: forall (ts :: [Type]). Prerequisite (BasicAuth' x scheme m e a) ts Request => BasicAuth' x scheme m e a -> SwaggerHandler m (With Request ts) (Either (Absence (BasicAuth' x scheme m e a) Request) (Attribute (BasicAuth' x scheme m e a) Request)) #

(TraitAbsence (JWTAuth' x scheme m e a) Request, KnownSymbol scheme) => Get (SwaggerHandler m :: Type -> Type -> Type) (JWTAuth' x scheme m e a) Request Source # 
Instance details

Defined in WebGear.Swagger.Trait.Auth.JWT

Methods

getTrait :: forall (ts :: [Type]). Prerequisite (JWTAuth' x scheme m e a) ts Request => JWTAuth' x scheme m e a -> SwaggerHandler m (With Request ts) (Either (Absence (JWTAuth' x scheme m e a) Request) (Attribute (JWTAuth' x scheme m e a) Request)) #

data Tree a Source #

A tree where internal nodes have one or two children.

Instances

Instances details
Show a => Show (Tree a) Source # 
Instance details

Defined in WebGear.Swagger.Handler

Methods

showsPrec :: Int -> Tree a -> ShowS #

show :: Tree a -> String #

showList :: [Tree a] -> ShowS #

singletonNode :: a -> Tree a Source #

Generate a tree with a single node

nullNode :: Tree a Source #

Generate an empty tree

toSwagger :: SwaggerHandler m a b -> Swagger Source #

Generate Swagger documentation from a handler