@@ -46,7 +46,9 @@ module Servant.Swagger.UI (
46
46
SwaggerSchemaUI ,
47
47
SwaggerSchemaUI' ,
48
48
swaggerSchemaUIServer ,
49
+ swaggerSchemaUIServerT ,
49
50
swaggerSchemaUIServer' ,
51
+ swaggerSchemaUIServerT' ,
50
52
51
53
-- ** Official swagger ui
52
54
swaggerUiIndexTemplate ,
@@ -72,6 +74,19 @@ swaggerSchemaUIServer
72
74
swaggerSchemaUIServer =
73
75
swaggerSchemaUIServerImpl swaggerUiIndexTemplate swaggerUiFiles
74
76
77
+ -- | Serve Swagger UI on @/dir@ using @api@ as a Swagger spec source.
78
+ --
79
+ -- Generalized to 'ServerT'
80
+ --
81
+ -- @
82
+ -- swaggerSchemaUIServerT :: Swagger -> ServerT (SwaggerSchemaUI schema dir) m
83
+ -- @
84
+ swaggerSchemaUIServerT
85
+ :: (Monad m , ServerT api m ~ m Swagger )
86
+ => Swagger -> ServerT (SwaggerSchemaUI' dir api ) m
87
+ swaggerSchemaUIServerT =
88
+ swaggerSchemaUIServerImpl swaggerUiIndexTemplate swaggerUiFiles
89
+
75
90
-- | Use a custom server to serve the Swagger spec source.
76
91
--
77
92
-- This allows even more control over how the spec source is served.
@@ -83,6 +98,20 @@ swaggerSchemaUIServer'
83
98
swaggerSchemaUIServer' =
84
99
swaggerSchemaUIServerImpl' swaggerUiIndexTemplate swaggerUiFiles
85
100
101
+ -- | Use a custom server to serve the Swagger spec source.
102
+ --
103
+ -- This allows even more control over how the spec source is served.
104
+ -- It allows, for instance, serving the spec source with authentication,
105
+ -- customizing the response based on the client or serving a swagger.yaml
106
+ -- instead.
107
+ --
108
+ -- Generalized to 'ServerT'
109
+ --
110
+ swaggerSchemaUIServerT'
111
+ :: Monad m => ServerT api m -> ServerT (SwaggerSchemaUI' dir api ) m
112
+ swaggerSchemaUIServerT' =
113
+ swaggerSchemaUIServerImpl' swaggerUiIndexTemplate swaggerUiFiles
114
+
86
115
swaggerUiIndexTemplate :: Text
87
116
swaggerUiIndexTemplate = $ (embedText " index.html.tmpl" )
88
117
0 commit comments