Have ideas to improve npm?Join in the discussion! »

    koa2-swagger-ui
    TypeScript icon, indicating that this package has built-in type declarations

    5.1.0 • Public • Published

    koa2-swagger-ui NPM version CircleCI

    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

    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);

    Install

    npm i koa2-swagger-ui

    DownloadsWeekly Downloads

    11,484

    Version

    5.1.0

    License

    MIT

    Unpacked Size

    20.8 kB

    Total Files

    8

    Last publish

    Collaborators

    • avatar