servant-swagger-ui-redoc 0.3.3.1.22.3 → 0.3.4.1.22.3
raw patch · 2 files changed
+38/−10 lines, 2 filesdep +aesondep −swagger2dep ~basedep ~bytestringdep ~servantnew-uploaderPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies added: aeson
Dependencies removed: swagger2
Dependency ranges changed: base, bytestring, servant, servant-server, servant-swagger-ui-core, text
API changes (from Hackage documentation)
+ Servant.Swagger.UI.ReDoc: redocSchemaUIServerT :: (Monad m, ServerT api m ~ m Value, ToJSON a) => a -> ServerT (SwaggerSchemaUI' dir api) m
+ Servant.Swagger.UI.ReDoc: redocSchemaUIServerT' :: Monad m => ServerT api m -> ServerT (SwaggerSchemaUI' dir api) m
- Servant.Swagger.UI.ReDoc: redocSchemaUIServer :: Server api ~ Handler Swagger => Swagger -> Server (SwaggerSchemaUI' dir api)
+ Servant.Swagger.UI.ReDoc: redocSchemaUIServer :: (Server api ~ Handler Value, ToJSON a) => a -> Server (SwaggerSchemaUI' dir api)
- Servant.Swagger.UI.ReDoc: type SwaggerSchemaUI (dir :: Symbol) (schema :: Symbol) = SwaggerSchemaUI' dir schema :> Get JSON : ([] :: [Type]) Swagger
+ Servant.Swagger.UI.ReDoc: type SwaggerSchemaUI (dir :: Symbol) (schema :: Symbol) = SwaggerSchemaUI' dir schema :> Get '[JSON] Value
- Servant.Swagger.UI.ReDoc: type SwaggerSchemaUI' (dir :: Symbol) api = api :<|> dir :> Get HTML : ([] :: [Type]) SwaggerUiHtml dir api :<|> "index.html" :> Get HTML : ([] :: [Type]) SwaggerUiHtml dir api :<|> Raw
+ Servant.Swagger.UI.ReDoc: type SwaggerSchemaUI' (dir :: Symbol) api = api :<|> dir :> Get '[HTML] SwaggerUiHtml dir api :<|> "index.html" :> Get '[HTML] SwaggerUiHtml dir api :<|> Raw
Files
servant-swagger-ui-redoc.cabal view
@@ -1,6 +1,6 @@ cabal-version: 1.12 name: servant-swagger-ui-redoc-version: 0.3.3.1.22.3+version: 0.3.4.1.22.3 synopsis: Servant swagger ui: ReDoc theme category: Web, Servant, Swagger description:@@ -18,7 +18,7 @@ license-file: LICENSE build-type: Simple tested-with:- GHC ==7.8.4 || ==7.10.3 || ==8.0.2 || ==8.2.2 || ==8.4.4 || ==8.6.5 || ==8.8.1+ GHC ==8.2.2 || ==8.4.4 || ==8.6.5 || ==8.8.4 || ==8.10.4 extra-source-files: redoc-dist-1.22.3/redoc.min.js@@ -32,14 +32,14 @@ library hs-source-dirs: src ghc-options: -Wall- build-depends: servant-swagger-ui-core >=0.3.3 && <0.4+ build-depends: servant-swagger-ui-core >=0.3.5 && <0.4 build-depends:- base >=4.7 && <4.14+ base >=4.7 && <4.15+ , aeson >=0.8.0.2 && <1.6 , bytestring >=0.10.4.0 && <0.11 , file-embed-lzma >=0 && <0.1- , servant >=0.14 && <0.17- , servant-server >=0.14 && <0.17- , swagger2 >=2.3.0.1 && <2.5+ , servant >=0.14 && <0.19+ , servant-server >=0.14 && <0.19 , text >=1.2.3.0 && <1.3 exposed-modules: Servant.Swagger.UI.ReDoc
src/Servant/Swagger/UI/ReDoc.hs view
@@ -46,7 +46,9 @@ SwaggerSchemaUI, SwaggerSchemaUI', redocSchemaUIServer,+ redocSchemaUIServerT, redocSchemaUIServer',+ redocSchemaUIServerT', -- ** ReDoc theme redocIndexTemplate,@@ -55,8 +57,8 @@ import Servant.Swagger.UI.Core +import Data.Aeson (ToJSON, Value) import Data.ByteString (ByteString)-import Data.Swagger (Swagger) import Data.Text (Text) import FileEmbedLzma import Servant@@ -65,17 +67,43 @@ -- -- See <https://github.com/Rebilly/ReDoc/tree/v1.x> redocSchemaUIServer- :: (Server api ~ Handler Swagger)- => Swagger -> Server (SwaggerSchemaUI' dir api)+ :: (Server api ~ Handler Value, ToJSON a)+ => a -> Server (SwaggerSchemaUI' dir api) redocSchemaUIServer = swaggerSchemaUIServerImpl redocIndexTemplate redocFiles +-- | Serve Redoc Swagger UI on @/dir@ using @api@ as a Swagger spec source.+--+-- Generalized to 'ServerT'+--+-- @+-- redocSchemaUIServerT :: Swagger -> ServerT (SwaggerSchemaUI schema dir) m+-- @+redocSchemaUIServerT+ :: (Monad m, ServerT api m ~ m Value, ToJSON a)+ => a -> ServerT (SwaggerSchemaUI' dir api) m+redocSchemaUIServerT =+ swaggerSchemaUIServerImpl redocIndexTemplate redocFiles+ -- | Use a custom server to serve the Swagger spec source. redocSchemaUIServer' :: Server api -> Server (SwaggerSchemaUI' dir api) redocSchemaUIServer' = swaggerSchemaUIServerImpl' redocIndexTemplate redocFiles +-- | Use a custom server to serve the Redoc Swagger spec source.+--+-- This allows even more control over how the spec source is served.+-- It allows, for instance, serving the spec source with authentication,+-- customizing the response based on the client or serving a swagger.yaml+-- instead.+--+-- Generalized to 'ServerT'+--+redocSchemaUIServerT'+ :: Monad m => ServerT api m -> ServerT (SwaggerSchemaUI' dir api) m+redocSchemaUIServerT' =+ swaggerSchemaUIServerImpl' redocIndexTemplate redocFiles redocIndexTemplate :: Text redocIndexTemplate = $(embedText "redoc.index.html.tmpl")