packages feed

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 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'