JSPM

  • Created
  • Published
  • Downloads 41481
  • Score
    100M100P100Q154834F
  • License MIT

Swagger UI middleware for koa

Package Exports

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (koa2-swagger-ui) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    koa2-swagger-ui NPM version

    Host swagger ui at a given directory from your koa v2 app

    Inspired by:

    install

    npm install koa2-swagger-ui --save

    config

    for more swaggerOptions see swagger-ui defaults:

    title: 'swagger', // page title
    oauthOptions: {}, // passed to initOAuth
    swaggerOptions: { // passed to SwaggerUi()
      dom_id: 'swagger-ui-container',
      url: 'http://petstore.swagger.io/v2/swagger.json', // link to swagger.json
      supportedSubmitMethods: ['get', 'post', 'put', 'delete', 'patch'],
      docExpansion: 'none',
      jsonEditor: false,
      defaultModelRendering: 'schema',
      showRequestHeaders: false,
      swaggerVersion: 'x.x.x' // read from package.json,
      validatorUrl: null, // disable swagger-ui validator
    },
    routePrefix: '/docs', // route where the view is returned
    specPrefix: '/docs/spec', // route where the spec is returned
    exposeSpec: false, // expose spec file
    hideTopbar: false, // hide swagger top bar
    favicon: '/favicon.png', // default favicon
    customCSS: `h1 { color: red }`, // Add Custom CSS on the html

    example

    import Koa from 'koa';
    import { koaSwagger } from 'koa2-swagger-ui';
    
    const app = new Koa();
    
    app.use(
      koaSwagger({
        routePrefix: '/swagger', // host at /swagger instead of default /docs
        swaggerOptions: {
          url: 'http://petstore.swagger.io/v2/swagger.json', // example path to json
        },
      }),
    );
    
    app.listen(3000);

    example with koa-router and yaml source

    depends on yamljs to turn your Yaml into a JS object

    npm install --save yamljs
    const Koa = require('koa');
    const Router = require('koa-router');
    const yamljs = require('yamljs');
    const koaSwagger = require('koa2-swagger-ui');
    
    const router = new Router({ prefix: '/' });
    
    const app = new Koa();
    const router = new Router();
    
    // .load loads file from root.
    const spec = yamljs.load('./openapi.yaml');
    
    // example 1 using router.use()
    router.use(koaSwagger({ swaggerOptions: { spec } }));
    
    // example 2 using more explicit .get()
    router.get('/docs', koaSwagger({ routePrefix: false, swaggerOptions: { spec } }));
    
    app.use(router.routes());
    app.listen(3000);