This package has been deprecated

Author message:

this version has been deprecated

fastify-swagger-ui

1.0.1 • Public • Published

Fastify Swagger UI Plugin

JavaScript Style Guide Build Status

Acknowledgements

This project use and override the fastify-swagger plugin implementation for JSON documentation generation. My thanks for the Fastify team for the plugin.

Installation

npm install fastify-swagger-ui --save

Usage

const fastify = require('fastify')()

fastify.register(require('fastify-swagger-ui'), {
  swagger: {
    info: {
      title: 'Test swagger',
      description: 'testing the fastify swagger api',
      version: '0.1.0'
    },
    host: 'localhost',
    schemes: ['http'],
    consumes: ['application/json'],
    produces: ['application/json']
  }
})

fastify.post('/some-route', {
  schema: {
    description: 'post some data',
    tags: ['user', 'code'],
    summary: 'qwerty',
    payload: {
      type: 'object',
      properties: {
        hello: { type: 'string' },
        obj: {
          type: 'object',
          properties: {
            some: { type: 'string' }
          }
        }
      }
    },
    out: {
      description: 'Succesful response',
      code: 201,
      type: 'object',
      properties: {
        hello: { type: 'string' }
      }
    }
  }
}, (req, reply) => {})

fastify.ready(err => {
  if (err) throw err
  fastify.swagger()
})

For view the documentation need to go to: http://localhost[:port]/docs

Options

Calling fastify.swagger will return to you a JSON object representing your api, if you pass { yaml: true } to fastify.swagger, it will return you a yaml string.

By default this plugin exposes a /documentation route, you can change the path by passing the option { route: String } or { exposeRoute: false } if you do not need it.

example
{
  swagger: {
    url: '/docs', // By default use /docs, but you can change ir for other
    info: {
      title: 'Project Documentation',
      description: 'Project Backend Documentation',
      version: '1.0.0'
    },
    host: 'ip:port',
    schemes: ['http'],
    consumes: ['application/json'],
    produces: ['application/json'],
    excludes: ['/some-route'] // this param configuration is optional
  }
}
For more information: https://github.com/fastify/fastify-swagger

Hide a route

Sometimes you may need to hide a certain route from the documentation, just pass { hide: true } to the schema object inside the route declaration.

Exclude routes

By default the route exclusions defined are: /documentation / and /*. If you want add other routes you can especify in the fastify.swagger options by passing for example: { excludes: ['/some-route'] }

Version

v1.0.0

Author

Nicolás Balduzzi

License

Licensed under MIT.

Dependencies (4)

Dev Dependencies (5)

Package Sidebar

Install

npm i fastify-swagger-ui

Weekly Downloads

237

Version

1.0.1

License

MIT

Last publish

Collaborators

  • nbalduzzi