README
@whook/swagger-ui
A wrapper for the Whook HTTP Router to provide SwaggerUI for local dev
This module provides the GraphIQL UI to your local Whook server !
Usage
The DEV_MODE=1
environment variable must be used
when starting your server (npm run dev
does it
by default).
Setup
Install the module:
npm i @whook/swagger-ui
To use it, just wrap the HTTP router with this module and
register it again with the Knifecycle
instance inside the
runServer
function (usually in src/index.ts
):
+ import initHTTPRouter from '@whook/http-router';
+ import wrapHTTPRouterWithSwaggerUI from '@whook/swagger-ui';
// (...)
// It is important to do this in the runServer function since it really
// make sense only when actually running the server
export async function runServer(injectedNames = [], $ = new Knifecycle()) {
// (...)
+ // Add support for Swagger UI by wrapping and
+ // overriding the original HTTP Router
+ $.register(
+ wrapHTTPRouterWithSwaggerUI(initHTTPRouter),
+ );
return await runBaseServer(injectedNames, $);
}
And add the SwaggerUI config (usually in src/config/common/config.js
):
+ import type {
+ WhookAPIOperationSwaggerConfig,
+ WhookSwaggerUIConfig,
+ } from '@whook/swagger-ui';
// ...
export type AppConfigs = WhookConfigs &
CORSConfig &
+ WhookSwaggerUIConfig &
APIConfig;
const CONFIG: AppConfigs = {
// ...
};
// Export custom handlers definitions
export type APIHandlerDefinition = WhookAPIHandlerDefinition<
WhookAPIOperationCORSConfig &
+ WhookAPIOperationSwaggerConfig
>;
export default CONFIG;
API
function
wrapHTTPRouterWithSwaggerUI(initHTTPRouter) ⇒ Wraps the httpRouter
initializer to also serve the
Swagger/OpenAPI UI for development purpose.
Kind: global function
Returns: function
- The httpRouter
initializer wrapped
Param | Type | Description |
---|---|---|
initHTTPRouter | function |
The httpRouter initializer |