Nicotine Powered Man

    swagger-express-router

    1.0.0 • Public • Published

    Swagger Express Router

    Build Status Dependencies npm version

    Takes a swagger JSON document and sets up express HTTP routes bound to middleware functions. All routing is therefore driven from the swagger documentation.

    Usage

    In app's package.json

    "swagger-express-router": "latest" // or desired version
    

    The following sample code will set up a GET endpoint with URL http://localhost:8000/api/swagger/v1/test1 bound to the function named swagTest in the middleware named middleware-name1

    Swagger document swagger.json

    {
       "swagger": "2.0",
       "info": {
         "title": "",
         "description": "",
         "version": "1.0"
       },
       "produces": ["application/json"],
       "host": "localhost:8000",
       "basePath": "/api/swagger/v1",
       "paths": {
         "/test1": {
           "get": {
             "x-swagger-router-controller": "middleware-name1",
             "operationId": "swagTest",
             "tags": ["/test"],
             "description": "",
             "parameters": [],
             "responses": {}
           }
         }
       }
    }

    Express setup app.js

    const app = express();
    const swagger = require('swagger-express-router');
    const swaggerDocument = require('./swagger.json');
    const useBasePath = true; //whether to use the basePath from the swagger document when setting up the routes (defaults to false)
    const middlewareObj = {
        'middleware-name1': require('./middleware/middleware-name1'),
        'middleware-name2': require('./middleware/middleware-name2')
    };
    swagger.setUpRoutes(middlewareObj, app, swaggerDocument, useBasePath);

    Middleware example middleware/middleware-name1.js

    'use strict';
     
    const swagTest = (req, res) => res.send('Blah1');
     
    module.exports = {
      swagTest
    };

    Test

    This module should work with all versions of Express 3 & Express 4. It has been tested specifically tested against express versions '4.14.0', '4.7.0', '4.1.0', '3.4.0', '3.1.0'

    Requirements

    • Node v4.2 or above
    • Express 3 or above

    Install

    npm i swagger-express-router

    DownloadsWeekly Downloads

    180

    Version

    1.0.0

    License

    BSD-2-Clause

    Last publish

    Collaborators

    • scottie1984