-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Composable, type-safe library to build HTTP API servers -- -- WebGear is a library to for building composable, type-safe HTTP API -- servers. This package can be used to generate OpenAPI specifications -- from WebGear applications. @package webgear-openapi @version 1.0.3 -- | An implementation of Handler to generate OpenApi -- documentation from WebGear API specifications. module WebGear.OpenApi.Handler -- | A handler that captured OpenApi documentation of API -- specifications. newtype OpenApiHandler m a b OpenApiHandler :: Tree DocNode -> OpenApiHandler m a b [openApiDoc] :: OpenApiHandler m a b -> Tree DocNode -- | Different types of documentation elements captured by the handler data DocNode DocSecurityScheme :: Text -> SecurityScheme -> DocNode DocRequestBody :: Definitions Schema -> RequestBody -> DocNode DocResponseBody :: Definitions Schema -> MediaType -> MediaTypeObject -> DocNode DocRequestHeader :: Param -> DocNode DocResponseHeader :: HeaderName -> Header -> DocNode DocMethod :: StdMethod -> DocNode DocPathElem :: Text -> DocNode DocPathVar :: Param -> DocNode DocQueryParam :: Param -> DocNode DocStatus :: Status -> DocNode DocSummary :: Summary -> DocNode DocDescription :: Description -> DocNode -- | A tree where internal nodes have one or two children. data Tree a -- | Generate a tree with a single node singletonNode :: a -> Tree a -- | Generate an empty tree nullNode :: Tree a -- | Generate OpenApi documentation from a handler toOpenApi :: OpenApiHandler m a b -> OpenApi instance GHC.Show.Show a => GHC.Show.Show (WebGear.OpenApi.Handler.Tree a) instance GHC.Show.Show WebGear.OpenApi.Handler.DocNode instance GHC.Show.Show WebGear.OpenApi.Handler.CompactDocNode instance forall k1 k2 (m :: k1). Control.Category.Category (WebGear.OpenApi.Handler.OpenApiHandler m) instance forall k (m :: k). Control.Arrow.Arrow (WebGear.OpenApi.Handler.OpenApiHandler m) instance forall k (m :: k). Control.Arrow.ArrowZero (WebGear.OpenApi.Handler.OpenApiHandler m) instance forall k (m :: k). Control.Arrow.ArrowPlus (WebGear.OpenApi.Handler.OpenApiHandler m) instance forall k (m :: k). Control.Arrow.ArrowChoice (WebGear.OpenApi.Handler.OpenApiHandler m) instance forall k (m :: k). Control.Arrow.Operations.ArrowError WebGear.Core.Handler.RouteMismatch (WebGear.OpenApi.Handler.OpenApiHandler m) instance GHC.Base.Monad m => WebGear.Core.Handler.Handler (WebGear.OpenApi.Handler.OpenApiHandler m) m -- | OpenApi implementation of BasicAuth' trait. module WebGear.OpenApi.Trait.Auth.Basic instance (WebGear.Core.Trait.TraitAbsence (WebGear.Core.Trait.Auth.Basic.BasicAuth' x scheme m e a) WebGear.Core.Request.Request, GHC.TypeLits.KnownSymbol scheme) => WebGear.Core.Trait.Get (WebGear.OpenApi.Handler.OpenApiHandler m) (WebGear.Core.Trait.Auth.Basic.BasicAuth' x scheme m e a) WebGear.Core.Request.Request -- | OpenApi implementation of JWTAuth' trait. module WebGear.OpenApi.Trait.Auth.JWT instance (WebGear.Core.Trait.TraitAbsence (WebGear.Core.Trait.Auth.JWT.JWTAuth' x scheme m e a) WebGear.Core.Request.Request, GHC.TypeLits.KnownSymbol scheme) => WebGear.Core.Trait.Get (WebGear.OpenApi.Handler.OpenApiHandler m) (WebGear.Core.Trait.Auth.JWT.JWTAuth' x scheme m e a) WebGear.Core.Request.Request -- | OpenApi implementation of Body trait. module WebGear.OpenApi.Trait.Body instance forall k val (m :: k). Data.OpenApi.Internal.Schema.ToSchema val => WebGear.Core.Trait.Get (WebGear.OpenApi.Handler.OpenApiHandler m) (WebGear.Core.Trait.Body.Body val) WebGear.Core.Request.Request instance forall k val (m :: k). Data.OpenApi.Internal.Schema.ToSchema val => WebGear.Core.Trait.Set (WebGear.OpenApi.Handler.OpenApiHandler m) (WebGear.Core.Trait.Body.Body val) WebGear.Core.Response.Response instance forall k val (m :: k). Data.OpenApi.Internal.Schema.ToSchema val => WebGear.Core.Trait.Get (WebGear.OpenApi.Handler.OpenApiHandler m) (WebGear.Core.Trait.Body.JSONBody val) WebGear.Core.Request.Request instance forall k val (m :: k). Data.OpenApi.Internal.Schema.ToSchema val => WebGear.Core.Trait.Set (WebGear.OpenApi.Handler.OpenApiHandler m) (WebGear.Core.Trait.Body.JSONBody val) WebGear.Core.Response.Response -- | OpenApi implementation of Header trait. module WebGear.OpenApi.Trait.Header instance forall k (name :: GHC.Types.Symbol) val (ps :: WebGear.Core.Modifiers.ParseStyle) (m :: k). (GHC.TypeLits.KnownSymbol name, Data.OpenApi.Internal.Schema.ToSchema val, WebGear.Core.Trait.TraitAbsence (WebGear.Core.Trait.Header.Header 'WebGear.Core.Modifiers.Required ps name val) WebGear.Core.Request.Request) => WebGear.Core.Trait.Get (WebGear.OpenApi.Handler.OpenApiHandler m) (WebGear.Core.Trait.Header.Header 'WebGear.Core.Modifiers.Required ps name val) WebGear.Core.Request.Request instance forall k (name :: GHC.Types.Symbol) val (ps :: WebGear.Core.Modifiers.ParseStyle) (m :: k). (GHC.TypeLits.KnownSymbol name, Data.OpenApi.Internal.Schema.ToSchema val, WebGear.Core.Trait.TraitAbsence (WebGear.Core.Trait.Header.Header 'WebGear.Core.Modifiers.Optional ps name val) WebGear.Core.Request.Request) => WebGear.Core.Trait.Get (WebGear.OpenApi.Handler.OpenApiHandler m) (WebGear.Core.Trait.Header.Header 'WebGear.Core.Modifiers.Optional ps name val) WebGear.Core.Request.Request instance forall k (name :: GHC.Types.Symbol) val (ps :: WebGear.Core.Modifiers.ParseStyle) (m :: k). (GHC.TypeLits.KnownSymbol name, Data.OpenApi.Internal.Schema.ToSchema val, WebGear.Core.Trait.Trait (WebGear.Core.Trait.Header.Header 'WebGear.Core.Modifiers.Required ps name val) WebGear.Core.Response.Response) => WebGear.Core.Trait.Set (WebGear.OpenApi.Handler.OpenApiHandler m) (WebGear.Core.Trait.Header.Header 'WebGear.Core.Modifiers.Required ps name val) WebGear.Core.Response.Response instance forall k (name :: GHC.Types.Symbol) val (ps :: WebGear.Core.Modifiers.ParseStyle) (m :: k). (GHC.TypeLits.KnownSymbol name, Data.OpenApi.Internal.Schema.ToSchema val, WebGear.Core.Trait.Trait (WebGear.Core.Trait.Header.Header 'WebGear.Core.Modifiers.Optional ps name val) WebGear.Core.Response.Response) => WebGear.Core.Trait.Set (WebGear.OpenApi.Handler.OpenApiHandler m) (WebGear.Core.Trait.Header.Header 'WebGear.Core.Modifiers.Optional ps name val) WebGear.Core.Response.Response -- | OpenApi implementation of Method trait. module WebGear.OpenApi.Trait.Method instance forall k (m :: k). WebGear.Core.Trait.Get (WebGear.OpenApi.Handler.OpenApiHandler m) WebGear.Core.Trait.Method.Method WebGear.Core.Request.Request -- | OpenApi implementation of path traits. module WebGear.OpenApi.Trait.Path instance forall k (m :: k). WebGear.Core.Trait.Get (WebGear.OpenApi.Handler.OpenApiHandler m) WebGear.Core.Trait.Path.Path WebGear.Core.Request.Request instance forall k (tag :: GHC.Types.Symbol) val (m :: k). (GHC.TypeLits.KnownSymbol tag, Data.OpenApi.Internal.Schema.ToSchema val) => WebGear.Core.Trait.Get (WebGear.OpenApi.Handler.OpenApiHandler m) (WebGear.Core.Trait.Path.PathVar tag val) WebGear.Core.Request.Request instance forall k (m :: k). WebGear.Core.Trait.Get (WebGear.OpenApi.Handler.OpenApiHandler m) WebGear.Core.Trait.Path.PathEnd WebGear.Core.Request.Request -- | OpenApi implementation of QueryParam trait. module WebGear.OpenApi.Trait.QueryParam instance forall k (name :: GHC.Types.Symbol) val (ps :: WebGear.Core.Modifiers.ParseStyle) (m :: k). (GHC.TypeLits.KnownSymbol name, Data.OpenApi.Internal.Schema.ToSchema val, WebGear.Core.Trait.TraitAbsence (WebGear.Core.Trait.QueryParam.QueryParam 'WebGear.Core.Modifiers.Required ps name val) WebGear.Core.Request.Request) => WebGear.Core.Trait.Get (WebGear.OpenApi.Handler.OpenApiHandler m) (WebGear.Core.Trait.QueryParam.QueryParam 'WebGear.Core.Modifiers.Required ps name val) WebGear.Core.Request.Request instance forall k (name :: GHC.Types.Symbol) val (ps :: WebGear.Core.Modifiers.ParseStyle) (m :: k). (GHC.TypeLits.KnownSymbol name, Data.OpenApi.Internal.Schema.ToSchema val, WebGear.Core.Trait.TraitAbsence (WebGear.Core.Trait.QueryParam.QueryParam 'WebGear.Core.Modifiers.Optional ps name val) WebGear.Core.Request.Request) => WebGear.Core.Trait.Get (WebGear.OpenApi.Handler.OpenApiHandler m) (WebGear.Core.Trait.QueryParam.QueryParam 'WebGear.Core.Modifiers.Optional ps name val) WebGear.Core.Request.Request -- | OpenApi implementation of Status trait. module WebGear.OpenApi.Trait.Status instance forall k (m :: k). WebGear.Core.Trait.Set (WebGear.OpenApi.Handler.OpenApiHandler m) WebGear.Core.Trait.Status.Status WebGear.Core.Response.Response -- | OpenAPI implementation of all traits supported by WebGear. -- -- This modules only exports orphan instances imported from other -- modules. Hence the haddock documentation will be empty. module WebGear.OpenApi.Traits -- | Main module for WebGear OpenAPI support. -- -- Import this module to get all required types and functions for -- generating OpenAPI documentation. Alternatively, import individual -- modules under WebGear.OpenApi. -- -- Typical usage to generate OpenAPI: -- --
--   import WebGear.OpenApi
--   import Data.OpenApi (OpenApi)
--   
--   myHandler :: Handler h m => RequestHandler h '[]
--   myHandler = ....
--   
--   documentation :: OpenApi
--   documentation = toOpenApi myHandler
--   
module WebGear.OpenApi