-- 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.3.0 -- | An implementation of Handler to generate OpenApi -- documentation from WebGear API specifications. module WebGear.OpenApi.Handler -- | A handler that captures OpenApi documentation of API -- specifications. newtype OpenApiHandler m a b OpenApiHandler :: (OpenApi -> State Documentation OpenApi) -> OpenApiHandler m a b data Documentation Documentation :: !Maybe Description -> !Maybe Summary -> Documentation consumeDescription :: MonadState Documentation m => m (Maybe Description) consumeSummary :: MonadState Documentation m => m (Maybe Summary) addRouteDocumentation :: MonadState Documentation m => OpenApi -> m OpenApi addRootPath :: OpenApi -> OpenApi -- | Generate OpenApi documentation from a handler toOpenApi :: OpenApiHandler m a b -> OpenApi instance GHC.Base.Semigroup WebGear.OpenApi.Handler.MergeOpenApi 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 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 GHC.Base.Monad m => WebGear.Core.Handler.Handler (WebGear.OpenApi.Handler.OpenApiHandler m) m -- | Functions and instances for authentication module WebGear.OpenApi.Trait.Auth addSecurityScheme :: MonadState Documentation m => Text -> SecurityScheme -> OpenApi -> m OpenApi instance GHC.TypeLits.KnownSymbol scheme => Data.OpenApi.Internal.Schema.ToSchema (WebGear.Core.Trait.Auth.Common.AuthToken scheme) -- | OpenApi implementation of BasicAuth' trait. module WebGear.OpenApi.Trait.Auth.Basic instance GHC.TypeLits.KnownSymbol scheme => WebGear.Core.Trait.Get (WebGear.OpenApi.Handler.OpenApiHandler m) (WebGear.Core.Trait.Auth.Basic.BasicAuth' x scheme m e a) -- | OpenApi implementation of JWTAuth' trait. module WebGear.OpenApi.Trait.Auth.JWT instance GHC.TypeLits.KnownSymbol scheme => WebGear.Core.Trait.Get (WebGear.OpenApi.Handler.OpenApiHandler m) (WebGear.Core.Trait.Auth.JWT.JWTAuth' x scheme m e a) -- | OpenApi implementation of Body trait. module WebGear.OpenApi.Trait.Body addResponseBody :: MonadState Documentation m => Definitions Schema -> InsOrdHashMap MediaType MediaTypeObject -> OpenApi -> m OpenApi instance forall k val mt (m :: k). (Data.OpenApi.Internal.Schema.ToSchema val, WebGear.Core.MIMETypes.MIMEType mt) => WebGear.Core.Trait.Get (WebGear.OpenApi.Handler.OpenApiHandler m) (WebGear.Core.Trait.Body.Body mt val) instance forall k val mt (m :: k). (Data.OpenApi.Internal.Schema.ToSchema val, WebGear.Core.MIMETypes.MIMEType mt) => WebGear.Core.Trait.Set (WebGear.OpenApi.Handler.OpenApiHandler m) (WebGear.Core.Trait.Body.Body mt val) instance forall k (m :: k). WebGear.Core.Trait.Set (WebGear.OpenApi.Handler.OpenApiHandler m) WebGear.Core.Trait.Body.UnknownContentBody -- | OpenApi implementation of Cookie and SetCookie traits. module WebGear.OpenApi.Trait.Cookie instance forall k (name :: GHC.Types.Symbol) (m :: k) (e :: WebGear.Core.Modifiers.Existence) val. GHC.TypeLits.KnownSymbol name => WebGear.Core.Trait.Get (WebGear.OpenApi.Handler.OpenApiHandler m) (WebGear.Core.Trait.Cookie.Cookie e name val) instance forall k (m :: k) (e :: WebGear.Core.Modifiers.Existence) (name :: GHC.Types.Symbol). WebGear.Core.Trait.Set (WebGear.OpenApi.Handler.OpenApiHandler m) (WebGear.Core.Trait.Cookie.SetCookie e name) -- | OpenApi implementation of Header trait. module WebGear.OpenApi.Trait.Header instance forall k (name :: GHC.Types.Symbol) val (m :: k) (ps :: WebGear.Core.Modifiers.ParseStyle). (GHC.TypeLits.KnownSymbol name, Data.OpenApi.Internal.Schema.ToSchema val) => WebGear.Core.Trait.Get (WebGear.OpenApi.Handler.OpenApiHandler m) (WebGear.Core.Trait.Header.RequestHeader 'WebGear.Core.Modifiers.Required ps name val) instance forall k (name :: GHC.Types.Symbol) val (m :: k) (ps :: WebGear.Core.Modifiers.ParseStyle). (GHC.TypeLits.KnownSymbol name, Data.OpenApi.Internal.Schema.ToSchema val) => WebGear.Core.Trait.Get (WebGear.OpenApi.Handler.OpenApiHandler m) (WebGear.Core.Trait.Header.RequestHeader 'WebGear.Core.Modifiers.Optional ps name val) instance forall k (name :: GHC.Types.Symbol) val (m :: k). (GHC.TypeLits.KnownSymbol name, Data.OpenApi.Internal.Schema.ToSchema val) => WebGear.Core.Trait.Set (WebGear.OpenApi.Handler.OpenApiHandler m) (WebGear.Core.Trait.Header.ResponseHeader 'WebGear.Core.Modifiers.Required name val) instance forall k (name :: GHC.Types.Symbol) val (m :: k). (GHC.TypeLits.KnownSymbol name, Data.OpenApi.Internal.Schema.ToSchema val) => WebGear.Core.Trait.Set (WebGear.OpenApi.Handler.OpenApiHandler m) (WebGear.Core.Trait.Header.ResponseHeader 'WebGear.Core.Modifiers.Optional name val) -- | OpenApi implementation of Method trait. module WebGear.OpenApi.Trait.Method removeOtherMethods :: StdMethod -> PathItem -> PathItem instance forall k (m :: k). WebGear.Core.Trait.Get (WebGear.OpenApi.Handler.OpenApiHandler m) WebGear.Core.Trait.Method.Method -- | 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 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) instance forall k (m :: k). WebGear.Core.Trait.Get (WebGear.OpenApi.Handler.OpenApiHandler m) WebGear.Core.Trait.Path.PathEnd -- | OpenApi implementation of QueryParam trait. module WebGear.OpenApi.Trait.QueryParam addParam :: MonadState Documentation m => Param -> OpenApi -> m OpenApi instance forall k (name :: GHC.Types.Symbol) val (m :: k) (ps :: WebGear.Core.Modifiers.ParseStyle). (GHC.TypeLits.KnownSymbol name, Data.OpenApi.Internal.Schema.ToSchema val) => WebGear.Core.Trait.Get (WebGear.OpenApi.Handler.OpenApiHandler m) (WebGear.Core.Trait.QueryParam.QueryParam 'WebGear.Core.Modifiers.Required ps name val) instance forall k (name :: GHC.Types.Symbol) val (m :: k) (ps :: WebGear.Core.Modifiers.ParseStyle). (GHC.TypeLits.KnownSymbol name, Data.OpenApi.Internal.Schema.ToSchema val) => WebGear.Core.Trait.Get (WebGear.OpenApi.Handler.OpenApiHandler m) (WebGear.Core.Trait.QueryParam.QueryParam 'WebGear.Core.Modifiers.Optional ps name val) -- | OpenApi implementation of Status trait. module WebGear.OpenApi.Trait.Status setOperation :: Maybe Description -> Status -> PathItem -> PathItem instance forall k (m :: k). WebGear.Core.Trait.Set (WebGear.OpenApi.Handler.OpenApiHandler m) WebGear.Core.Trait.Status.Status -- | 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