servant-swagger-ui-core 0.3.4 → 0.3.5
raw patch · 3 files changed
+16/−10 lines, 3 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, text, transformers, transformers-compat, wai-app-static
API changes (from Hackage documentation)
- Servant.Swagger.UI.Core: swaggerSchemaUIServerImpl :: (Monad m, ServerT api m ~ m Swagger) => Text -> [(FilePath, ByteString)] -> Swagger -> ServerT (SwaggerSchemaUI' dir api) m
+ Servant.Swagger.UI.Core: swaggerSchemaUIServerImpl :: (Monad m, ServerT api m ~ m Value, ToJSON a) => Text -> [(FilePath, ByteString)] -> a -> ServerT (SwaggerSchemaUI' dir api) m
- Servant.Swagger.UI.Core: type SwaggerSchemaUI (dir :: Symbol) (schema :: Symbol) = SwaggerSchemaUI' dir (schema :> Get '[JSON] Swagger)
+ Servant.Swagger.UI.Core: type SwaggerSchemaUI (dir :: Symbol) (schema :: Symbol) = SwaggerSchemaUI' dir (schema :> Get '[JSON] Value)
Files
- Changelog.md +5/−0
- servant-swagger-ui-core.cabal +4/−5
- src/Servant/Swagger/UI/Core.hs +7/−5
Changelog.md view
@@ -1,3 +1,8 @@+# 0.3.5++- Generalize `SwaggerSchemaUI` and `swaggerSchemaUIServerImpl` to support arbitrary `Value` instead+ of hardcoded `Swagger` type.+ # 0.3.3 - Add `swaggerSchemaUIServerImpl'`
servant-swagger-ui-core.cabal view
@@ -1,6 +1,6 @@ cabal-version: 1.12 name: servant-swagger-ui-core-version: 0.3.4+version: 0.3.5 synopsis: Servant swagger ui core components category: Web, Servant, Swagger description:@@ -19,12 +19,11 @@ license-file: LICENSE build-type: Simple tested-with:- GHC ==8.0.2- || ==8.2.2+ GHC ==8.2.2 || ==8.4.4 || ==8.6.5 || ==8.8.4- || ==8.10.2+ || ==8.10.4 extra-source-files: Changelog.md @@ -37,13 +36,13 @@ ghc-options: -Wall build-depends: base >=4.7 && <4.15+ , aeson >=0.8.0.2 && <1.6 , blaze-markup >=0.7.0.2 && <0.9 , bytestring >=0.10.4.0 && <0.11 , http-media >=0.7.1.3 && <0.9 , servant >=0.14 && <0.19 , servant-blaze >=0.8 && <0.10 , servant-server >=0.14 && <0.19- , swagger2 >=2.3.0.1 && <2.7 , text >=1.2.3.0 && <1.3 , transformers >=0.3 && <0.6 , transformers-compat >=0.3 && <0.7
src/Servant/Swagger/UI/Core.hs view
@@ -46,8 +46,8 @@ Handler, ) where +import Data.Aeson (ToJSON (..), Value) import Data.ByteString (ByteString)-import Data.Swagger (Swagger) import GHC.TypeLits (KnownSymbol, Symbol, symbolVal) import Network.Wai.Application.Static (embeddedSettings, staticApp) import Servant@@ -67,8 +67,10 @@ -- \/swagger-ui\/... -- @ --+-- This type does not actually force served type to be @Swagger@ from @swagger2@ package,+-- it could be arbitrary @aeson@ 'Value'. type SwaggerSchemaUI (dir :: Symbol) (schema :: Symbol) =- SwaggerSchemaUI' dir (schema :> Get '[JSON] Swagger)+ SwaggerSchemaUI' dir (schema :> Get '[JSON] Value) -- | Use 'SwaggerSchemaUI'' when you need even more control over -- where @swagger.json@ is served (e.g. subdirectory).@@ -101,11 +103,11 @@ proxyApi = Proxy :: Proxy api swaggerSchemaUIServerImpl- :: (Monad m, ServerT api m ~ m Swagger)+ :: (Monad m, ServerT api m ~ m Value, ToJSON a) => T.Text -> [(FilePath, ByteString)]- -> Swagger -> ServerT (SwaggerSchemaUI' dir api) m+ -> a -> ServerT (SwaggerSchemaUI' dir api) m swaggerSchemaUIServerImpl indexTemplate files swagger- = swaggerSchemaUIServerImpl' indexTemplate files $ return swagger+ = swaggerSchemaUIServerImpl' indexTemplate files $ return $ toJSON swagger -- | Use a custom server to serve the Swagger spec source. swaggerSchemaUIServerImpl'