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

WebGear.OpenApi.Handler

Description

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

Synopsis

Documentation

newtype OpenApiHandler m a b Source #

A handler that captured OpenApi documentation of API specifications.

Constructors

OpenApiHandler 

Instances

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

Defined in WebGear.OpenApi.Handler

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

Defined in WebGear.OpenApi.Handler

Methods

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

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

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

Defined in WebGear.OpenApi.Handler

Methods

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

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

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

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

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

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

Defined in WebGear.OpenApi.Handler

Methods

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

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

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

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

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

Defined in WebGear.OpenApi.Handler

Methods

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

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

Defined in WebGear.OpenApi.Handler

Methods

zeroArrow :: OpenApiHandler m b c #

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

Defined in WebGear.OpenApi.Handler

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

Defined in WebGear.OpenApi.Trait.Method

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

Defined in WebGear.OpenApi.Trait.Path

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

Defined in WebGear.OpenApi.Trait.Path

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

Defined in WebGear.OpenApi.Trait.Body

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

Defined in WebGear.OpenApi.Trait.Status

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

Defined in WebGear.OpenApi.Trait.Body

Methods

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

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

Defined in WebGear.OpenApi.Trait.Path

Methods

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

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

Defined in WebGear.OpenApi.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)) -> OpenApiHandler m (With Response ts, Attribute (Body mt val) Response) (With Response (Body mt val ': ts)) #

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

Defined in WebGear.OpenApi.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)) -> OpenApiHandler m (With Response ts, Attribute (SetCookie e name) Response) (With Response (SetCookie e name ': ts)) #

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

Defined in WebGear.OpenApi.Trait.Cookie

Methods

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

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

Defined in WebGear.OpenApi.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)) -> OpenApiHandler m (With Response ts, Attribute (ResponseHeader 'Optional name val) Response) (With Response (ResponseHeader 'Optional name val ': ts)) #

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

Defined in WebGear.OpenApi.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)) -> OpenApiHandler m (With Response ts, Attribute (ResponseHeader 'Required name val) Response) (With Response (ResponseHeader 'Required name val ': ts)) #

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

Defined in WebGear.OpenApi.Trait.Header

Methods

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

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

Defined in WebGear.OpenApi.Trait.Header

Methods

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

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

Defined in WebGear.OpenApi.Trait.QueryParam

Methods

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

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

Defined in WebGear.OpenApi.Trait.QueryParam

Methods

getTrait :: forall (ts :: [Type]). Prerequisite (QueryParam 'Required ps name val) ts Request => QueryParam 'Required ps name val -> OpenApiHandler 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 (OpenApiHandler m :: Type -> Type -> Type) (BasicAuth' x scheme m e a) Request Source # 
Instance details

Defined in WebGear.OpenApi.Trait.Auth.Basic

Methods

getTrait :: forall (ts :: [Type]). Prerequisite (BasicAuth' x scheme m e a) ts Request => BasicAuth' x scheme m e a -> OpenApiHandler 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 (OpenApiHandler m :: Type -> Type -> Type) (JWTAuth' x scheme m e a) Request Source # 
Instance details

Defined in WebGear.OpenApi.Trait.Auth.JWT

Methods

getTrait :: forall (ts :: [Type]). Prerequisite (JWTAuth' x scheme m e a) ts Request => JWTAuth' x scheme m e a -> OpenApiHandler 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.OpenApi.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

toOpenApi :: OpenApiHandler m a b -> OpenApi Source #

Generate OpenApi documentation from a handler