Skip to content

Commit 535db4c

Browse files
committed
add generalized redoc schema UI server
1 parent 597f350 commit 535db4c

File tree

1 file changed

+28
-0
lines changed
  • servant-swagger-ui-redoc/src/Servant/Swagger/UI

1 file changed

+28
-0
lines changed

servant-swagger-ui-redoc/src/Servant/Swagger/UI/ReDoc.hs

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,9 @@ module Servant.Swagger.UI.ReDoc (
4646
SwaggerSchemaUI,
4747
SwaggerSchemaUI',
4848
redocSchemaUIServer,
49+
redocSchemaUIServerT,
4950
redocSchemaUIServer',
51+
redocSchemaUIServerT',
5052

5153
-- ** ReDoc theme
5254
redocIndexTemplate,
@@ -70,12 +72,38 @@ redocSchemaUIServer
7072
redocSchemaUIServer =
7173
swaggerSchemaUIServerImpl redocIndexTemplate redocFiles
7274

75+
-- | Serve Redoc Swagger UI on @/dir@ using @api@ as a Swagger spec source.
76+
--
77+
-- Generalized to 'ServerT'
78+
--
79+
-- @
80+
-- redocSchemaUIServerT :: Swagger -> ServerT (SwaggerSchemaUI schema dir) m
81+
-- @
82+
redocSchemaUIServerT
83+
:: (Monad m, ServerT api m ~ m Swagger)
84+
=> Swagger -> ServerT (SwaggerSchemaUI' dir api) m
85+
redocSchemaUIServerT =
86+
swaggerSchemaUIServerImpl redocIndexTemplate redocFiles
87+
7388
-- | Use a custom server to serve the Swagger spec source.
7489
redocSchemaUIServer'
7590
:: Server api -> Server (SwaggerSchemaUI' dir api)
7691
redocSchemaUIServer' =
7792
swaggerSchemaUIServerImpl' redocIndexTemplate redocFiles
7893

94+
-- | Use a custom server to serve the Redoc Swagger spec source.
95+
--
96+
-- This allows even more control over how the spec source is served.
97+
-- It allows, for instance, serving the spec source with authentication,
98+
-- customizing the response based on the client or serving a swagger.yaml
99+
-- instead.
100+
--
101+
-- Generalized to 'ServerT'
102+
--
103+
redocSchemaUIServerT'
104+
:: Monad m => ServerT api m -> ServerT (SwaggerSchemaUI' dir api) m
105+
redocSchemaUIServerT' =
106+
swaggerSchemaUIServerImpl' redocIndexTemplate redocFiles
79107

80108
redocIndexTemplate :: Text
81109
redocIndexTemplate = $(embedText "redoc.index.html.tmpl")

0 commit comments

Comments
 (0)