1.4.0 • Published 1 year ago

koa-joi-router-docs-v2 v1.4.0

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

Koa-Joi-Router Docs Generator V2

NPM

CircleCI

Why v2?

This project is based on https://github.com/chuyik/koa-joi-router-docs which does not support latest Joi version.

1) This project uses latest koa-joi-router package. Also this package uses joi-to-swagger.

2) Also we can rename keys, like nullable to be x-nullable. For example for redoc

Example:

    const spec = generator.generateSpec({
      info: {
        title: 'Example API',
        version: '1.1'
      },
      basePath: '/'
    }, undefined, { 'nullable': 'x-nullable' });

Migration from koa-joi-router-docs

No additional action required, it should be possible just to replace older package.

About the package

A node module for generating Swagger 2.0 JSON definitions from existing koa-joi-router routes.

Preview

Install

# use npm
npm install koa-joi-router-docs-v2 --save
# use yarn
yarn add koa-joi-router-docs-v2

Example

Visit example/ folder to see the full example.

API

new SwaggerAPI()

Creates a new SwaggerAPI instance.

swaggerAPI.addJoiRouter(router, options)

Add a joi-router instance to the API. The router should already have all its routes set up before calling this method (which pulls the route definitions from the router's .routes property).

Options:

  • prefix: Prefix to add to Swagger path (use prefix from JoiRouter if not set)

swaggerAPI.generateSpec(baseSpec, options, renameKeys)

Create a Swagger specification for this API. A base specification should be provided with an info object (containing at least the title and version strings) and any other global descriptions.

baseSpec example:

{
  info: {
    title: 'Example API',
    version: '1.1'
  },
  basePath: '/'
}

options example:

  • defaultResponses: Custom default responses
  {
    200: {
      description: 'Success'
    }
  }

renameKeys example:

  { 'nullable': 'x-nullable' }