webgear-openapi-1.3.1: Composable, type-safe library to build HTTP API servers
Safe HaskellNone
LanguageHaskell2010

WebGear.OpenApi.Handler

Description

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

Synopsis

Documentation

newtype OpenApiHandler (m :: k) (a :: k1) (b :: k2) Source #

A handler that captures OpenApi documentation of API specifications.

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 :: k2). OpenApiHandler m a a #

(.) :: forall (b :: k2) (c :: k2) (a :: k2). 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 Source # 
Instance details

Defined in WebGear.OpenApi.Trait.Method

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

Defined in WebGear.OpenApi.Trait.Path

Methods

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

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

Defined in WebGear.OpenApi.Trait.Path

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

Defined in WebGear.OpenApi.Trait.Body

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

Defined in WebGear.OpenApi.Trait.Status

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

Defined in WebGear.OpenApi.Trait.Body

Methods

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

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

Defined in WebGear.OpenApi.Trait.Path

Methods

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

(ToSchema val, MIMEType mt) => Set (OpenApiHandler m :: Type -> Type -> Type) (Body mt val) 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)) #

Set (OpenApiHandler m :: Type -> Type -> Type) (SetCookie e name) 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 => Get (OpenApiHandler m :: Type -> Type -> Type) (Cookie e name val) Source # 
Instance details

Defined in WebGear.OpenApi.Trait.Cookie

Methods

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

(KnownSymbol name, ToSchema val) => Set (OpenApiHandler m :: Type -> Type -> Type) (ResponseHeader 'Optional name val) 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) 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) => Get (OpenApiHandler m :: Type -> Type -> Type) (RequestHeader 'Optional ps name val) Source # 
Instance details

Defined in WebGear.OpenApi.Trait.Header

Methods

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

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

Defined in WebGear.OpenApi.Trait.Header

Methods

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

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

Defined in WebGear.OpenApi.Trait.QueryParam

Methods

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

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

Defined in WebGear.OpenApi.Trait.QueryParam

Methods

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

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

Defined in WebGear.OpenApi.Trait.Auth.Basic

Methods

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

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

Defined in WebGear.OpenApi.Trait.Auth.JWT

Methods

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

toOpenApi :: forall {k1} {k2} {k3} (m :: k1) (a :: k2) (b :: k3). OpenApiHandler m a b -> OpenApi Source #

Generate OpenApi documentation from a handler