git.iko.soy/typeable/servant-swagger-ui
on master help sign in
Allow custom servers for the Swagger spec file
3fd3d83Enis Bayramoğlu
servant-swagger-ui-core/Changelog.md+4
@@ -1,3 +1,7 @@
1+# 0.3.3
2+
3+- Add `swaggerSchemaUIServerImpl'`
4+
1# 0.3.1
5# 0.3.1
2
6
3- Support `servant-0.14`
7- Support `servant-0.14`
servant-swagger-ui-core/servant-swagger-ui-core.cabal+1−2
@@ -1,7 +1,6 @@
1cabal-version: 1.12
1cabal-version: 1.12
2name: servant-swagger-ui-core
2name: servant-swagger-ui-core
3−version: 0.3.2
3+version: 0.3.3
4−x-revision: 5
5synopsis: Servant swagger ui core components
4synopsis: Servant swagger ui core components
6category: Web, Servant, Swagger
5category: Web, Servant, Swagger
7description:
6description:
servant-swagger-ui-core/src/Servant/Swagger/UI/Core.hs+10−1
@@ -42,6 +42,7 @@ module Servant.Swagger.UI.Core (
42 -- * Implementation details
42 -- * Implementation details
43 SwaggerUiHtml(..),
43 SwaggerUiHtml(..),
44 swaggerSchemaUIServerImpl,
44 swaggerSchemaUIServerImpl,
45+ swaggerSchemaUIServerImpl',
45 Handler,
46 Handler,
46 ) where
47 ) where
47
48
@@ -103,7 +104,15 @@ swaggerSchemaUIServerImpl
103 :: (Server api ~ Handler Swagger)
104 :: (Server api ~ Handler Swagger)
104 => T.Text -> [(FilePath, ByteString)]
105 => T.Text -> [(FilePath, ByteString)]
105 -> Swagger -> Server (SwaggerSchemaUI' dir api)
106 -> Swagger -> Server (SwaggerSchemaUI' dir api)
106−swaggerSchemaUIServerImpl indexTemplate files swagger = return swagger
107+swaggerSchemaUIServerImpl indexTemplate files swagger
108+ = swaggerSchemaUIServerImpl' indexTemplate files $ return swagger
109+
110+-- | Use a custom server to serve the Swagger spec source.
111+swaggerSchemaUIServerImpl'
112+ :: T.Text -> [(FilePath, ByteString)]
113+ -> Server api -> Server (SwaggerSchemaUI' dir api)
114+swaggerSchemaUIServerImpl' indexTemplate files server
115+ = server
107 :<|> return (SwaggerUiHtml indexTemplate)
116 :<|> return (SwaggerUiHtml indexTemplate)
108 :<|> return (SwaggerUiHtml indexTemplate)
117 :<|> return (SwaggerUiHtml indexTemplate)
109 :<|> rest
118 :<|> rest
servant-swagger-ui-jensoleg/servant-swagger-ui-jensoleg.cabal+2−3
@@ -1,7 +1,6 @@
1cabal-version: 1.12
1cabal-version: 1.12
2name: servant-swagger-ui-jensoleg
2name: servant-swagger-ui-jensoleg
3−version: 0.3.2
3+version: 0.3.3
4−x-revision: 3
5synopsis: Servant swagger ui: Jens-Ole Graulund theme
4synopsis: Servant swagger ui: Jens-Ole Graulund theme
6category: Web, Servant, Swagger
5category: Web, Servant, Swagger
7description:
6description:
@@ -79,7 +78,7 @@ source-repository head
79library
78library
80 hs-source-dirs: src
79 hs-source-dirs: src
81 ghc-options: -Wall
80 ghc-options: -Wall
82− build-depends: servant-swagger-ui-core >=0.3.2 && <0.4
81+ build-depends: servant-swagger-ui-core >=0.3.3 && <0.4
83 build-depends:
82 build-depends:
84 base >=4.7 && <4.13
83 base >=4.7 && <4.13
85 , bytestring >=0.10.4.0 && <0.11
84 , bytestring >=0.10.4.0 && <0.11
servant-swagger-ui-jensoleg/src/Servant/Swagger/UI/JensOleG.hs+7
@@ -46,6 +46,7 @@ module Servant.Swagger.UI.JensOleG (
46 SwaggerSchemaUI,
46 SwaggerSchemaUI,
47 SwaggerSchemaUI',
47 SwaggerSchemaUI',
48 jensolegSwaggerSchemaUIServer,
48 jensolegSwaggerSchemaUIServer,
49+ jensolegSwaggerSchemaUIServer',
49
50
50 -- ** ReDoc theme
51 -- ** ReDoc theme
51 jensolegIndexTemplate,
52 jensolegIndexTemplate,
@@ -71,6 +72,12 @@ jensolegSwaggerSchemaUIServer
71jensolegSwaggerSchemaUIServer =
72jensolegSwaggerSchemaUIServer =
72 swaggerSchemaUIServerImpl jensolegIndexTemplate jensolegFiles
73 swaggerSchemaUIServerImpl jensolegIndexTemplate jensolegFiles
73
74
75+-- | Use a custom server to serve the Swagger spec source.
76+jensolegSwaggerSchemaUIServer'
77+ :: Server api -> Server (SwaggerSchemaUI' dir api)
78+jensolegSwaggerSchemaUIServer' =
79+ swaggerSchemaUIServerImpl' jensolegIndexTemplate jensolegFiles
80+
74jensolegIndexTemplate :: Text
81jensolegIndexTemplate :: Text
75jensolegIndexTemplate = $(embedText "jensoleg.index.html.tmpl")
82jensolegIndexTemplate = $(embedText "jensoleg.index.html.tmpl")
76
83
servant-swagger-ui-redoc/CHANGELOG.md+3
@@ -1,3 +1,6 @@
1+- 0.3.3.1.22.2
2+ - Add `swaggerSchemaUIServer'`
3+
1- 0.3.2.1.22.2
4- 0.3.2.1.22.2
2 - Update to ReDoc-1.22.2
5 - Update to ReDoc-1.22.2
3 - Add GHC-8.6 support
6 - Add GHC-8.6 support
servant-swagger-ui-redoc/servant-swagger-ui-redoc.cabal+2−3
@@ -1,7 +1,6 @@
1cabal-version: 1.12
1cabal-version: 1.12
2name: servant-swagger-ui-redoc
2name: servant-swagger-ui-redoc
3−version: 0.3.2.1.22.2
3+version: 0.3.3.1.22.2
4−x-revision: 3
5synopsis: Servant swagger ui: ReDoc theme
4synopsis: Servant swagger ui: ReDoc theme
6category: Web, Servant, Swagger
5category: Web, Servant, Swagger
7description:
6description:
@@ -33,7 +32,7 @@ source-repository head
33library
32library
34 hs-source-dirs: src
33 hs-source-dirs: src
35 ghc-options: -Wall
34 ghc-options: -Wall
36− build-depends: servant-swagger-ui-core >=0.3.2 && <0.4
35+ build-depends: servant-swagger-ui-core >=0.3.3 && <0.4
37 build-depends:
36 build-depends:
38 base >=4.7 && <4.13
37 base >=4.7 && <4.13
39 , bytestring >=0.10.4.0 && <0.11
38 , bytestring >=0.10.4.0 && <0.11
servant-swagger-ui-redoc/src/Servant/Swagger/UI/ReDoc.hs+8
@@ -46,6 +46,7 @@ module Servant.Swagger.UI.ReDoc (
46 SwaggerSchemaUI,
46 SwaggerSchemaUI,
47 SwaggerSchemaUI',
47 SwaggerSchemaUI',
48 redocSchemaUIServer,
48 redocSchemaUIServer,
49+ redocSchemaUIServer',
49
50
50 -- ** ReDoc theme
51 -- ** ReDoc theme
51 redocIndexTemplate,
52 redocIndexTemplate,
@@ -69,6 +70,13 @@ redocSchemaUIServer
69redocSchemaUIServer =
70redocSchemaUIServer =
70 swaggerSchemaUIServerImpl redocIndexTemplate redocFiles
71 swaggerSchemaUIServerImpl redocIndexTemplate redocFiles
71
72
73+-- | Use a custom server to serve the Swagger spec source.
74+redocSchemaUIServer'
75+ :: Server api -> Server (SwaggerSchemaUI' dir api)
76+redocSchemaUIServer' =
77+ swaggerSchemaUIServerImpl' redocIndexTemplate redocFiles
78+
79+
72redocIndexTemplate :: Text
80redocIndexTemplate :: Text
73redocIndexTemplate = $(embedText "redoc.index.html.tmpl")
81redocIndexTemplate = $(embedText "redoc.index.html.tmpl")
74
82
servant-swagger-ui/CHANGELOG.md+4
@@ -1,3 +1,7 @@
1+- 0.3.3.3.22.2
2+ - Update to `swagger-ui-3.22.2`
3+ - Add `swaggerSchemaUIServer'`
4+
1- 0.3.2.3.19.3
5- 0.3.2.3.19.3
2 - Update to `swagger-ui-3.19.3`
6 - Update to `swagger-ui-3.19.3`
3 - Add GHC-8.6 support
7 - Add GHC-8.6 support
servant-swagger-ui/servant-swagger-ui.cabal+2−2
@@ -1,6 +1,6 @@
1cabal-version: 1.12
1cabal-version: 1.12
2name: servant-swagger-ui
2name: servant-swagger-ui
3−version: 0.3.2.3.22.2
3+version: 0.3.3.3.22.2
4synopsis: Servant swagger ui
4synopsis: Servant swagger ui
5category: Web, Servant, Swagger
5category: Web, Servant, Swagger
6description:
6description:
@@ -37,7 +37,7 @@ source-repository head
37library
37library
38 hs-source-dirs: src
38 hs-source-dirs: src
39 ghc-options: -Wall
39 ghc-options: -Wall
40− build-depends: servant-swagger-ui-core ==0.3.*
40+ build-depends: servant-swagger-ui-core >=0.3.3 && <0.4
41 build-depends:
41 build-depends:
42 base >=4.7 && <4.13
42 base >=4.7 && <4.13
43 , bytestring >=0.10.4.0 && <0.11
43 , bytestring >=0.10.4.0 && <0.11
servant-swagger-ui/src/Servant/Swagger/UI.hs+12
@@ -46,6 +46,7 @@ module Servant.Swagger.UI (
46 SwaggerSchemaUI,
46 SwaggerSchemaUI,
47 SwaggerSchemaUI',
47 SwaggerSchemaUI',
48 swaggerSchemaUIServer,
48 swaggerSchemaUIServer,
49+ swaggerSchemaUIServer',
49
50
50 -- ** Official swagger ui
51 -- ** Official swagger ui
51 swaggerUiIndexTemplate,
52 swaggerUiIndexTemplate,
@@ -71,6 +72,17 @@ swaggerSchemaUIServer
71swaggerSchemaUIServer =
72swaggerSchemaUIServer =
72 swaggerSchemaUIServerImpl swaggerUiIndexTemplate swaggerUiFiles
73 swaggerSchemaUIServerImpl swaggerUiIndexTemplate swaggerUiFiles
73
74
75+-- | Use a custom server to serve the Swagger spec source.
76+--
77+-- This allows even more control over how the spec source is served.
78+-- It allows, for instance, serving the spec source with authentication,
79+-- customizing the response based on the client or serving a swagger.yaml
80+-- instead.
81+swaggerSchemaUIServer'
82+ :: Server api -> Server (SwaggerSchemaUI' dir api)
83+swaggerSchemaUIServer' =
84+ swaggerSchemaUIServerImpl' swaggerUiIndexTemplate swaggerUiFiles
85+
74swaggerUiIndexTemplate :: Text
86swaggerUiIndexTemplate :: Text
75swaggerUiIndexTemplate = $(embedText "index.html.tmpl")
87swaggerUiIndexTemplate = $(embedText "index.html.tmpl")
76
88