Giter VIP home page Giter VIP logo

swagger-inline's Introduction

swagger-inline

Node module for extracting swagger endpoints from inline comments.

Install

npm install --save-dev swagger-inline

Build

npm run build # single build
npm start # build + watch

Test

npm test # single run
npm run test-watch # test + watch

Usage

Javascript

swaggerInline([inputGlobs...], options) => Promise => json | yaml

const swaggerInline = require('swagger-inline');

swaggerInline(['src/**/*.js', 'test/**/*.js'], {
    base: 'swaggerBase.json',
}).then((generatedSwagger) => {
    /* ... */
});

Cli

swagger-inline <inputGlobs ...> [--base] [--format] [--out]

swagger-inline 'src/**/*.js' --base 'swaggerBase.json' # outputs built swagger.json

Options:

  • inputGlobs: Files/globs to search for swagger comments.
  • base: Base swagger to extend. (default: auto-detect)
  • out: Name of file to output the generated swagger file (default: results returned, no file saved).
  • format: Output filetype - .json or .yaml (default: .json)
  • logger: Function called for logging.
  • metadata: Add additional annotations to the Swagger file, prefixed with "x-si"
  • ignore: globs of files to ignore (by default, ['node_modules/**/*', ...etc],

Example:

1) Create a project

swaggerBase.yaml

swagger: "2.0"
host: "petstore.swagger.io"
basePath: "/api"
schemes: ['http']

api.js

/*
 * @api [get] /pets
 * description: "Returns all pets from the system that the user has access to"
 * responses:
 *   "200":
 *     description: "A list of pets."
 *     schema:
 *       type: "String"
 */

api.route('/pets', function() {
    /* Pet code ๐Ÿ˜บ */
});

2) Run Command

swagger-inline './*.js' --base './swaggerBase.yaml'

Output:

swagger.yaml

swagger: "2.0"
host: "petstore.swagger.io"
basePath: "/api"
schemes: ['http']
/pets:
  get:
    description: Returns all pets from the system that the user has access to
    responses:
      '200':
        description: A list of pets.
        schema:
          type: "String"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.