Git Product home page Git Product logo

adonis-swagger's Introduction

Adonis Swagger

npm version build status npm npm Coverage Status

Create documentation easily in Adonis 4.x using Swagger ๐Ÿ˜

Installation

adonis install adonis-swagger

Configuration

  • Register SwaggerProvider in start/app.js:

    const providers = [
      ...
      'adonis-swagger/providers/SwaggerProvider'
    ]
  • Other configuration please update the config/swagger.js file.

Sample Usage

  • Add new route

    Route.get('/api/hello', 'TestController.hello')
  • Create TestController using command adonis make:controller Test

    'use strict'
    
    class TestController {
    
      /**
      * @swagger
      * /api/hello:
      *   get:
      *     tags:
      *       - Test
      *     summary: Sample API
      *     parameters:
      *       - name: name
      *         description: Name of the user
      *         in: query
      *         required: false
      *         type: string
      *     responses:
      *       200:
      *         description: Send hello message
      *         example:
      *           message: Hello Guess
      */
      async hello({ request, response }) {
        const name = request.input('name', 'Guess')
        response.send({ message: 'Hello ' + name })
      }
    }
    
    module.exports = TestController
  • You can also define the schema in the Models

    'use strict'
    
    const Model = use('Model')
    
    /** 
    *  @swagger
    *  definitions:
    *    User:
    *      type: object
    *      properties:
    *        id:
    *          type: uint
    *        username:
    *          type: string
    *        email:
    *          type: string
    *        password:
    *          type: string
    *      required:
    *        - username
    *        - email
    *        - password
    */
    class User extends Model {
    }
    
    module.exports = User
  • Or create a separate file containing documentation from the APIs in either JS or YAML formats, sample structure:

    project
    โ”œโ”€โ”€ app
    โ”œโ”€โ”€ config 
    โ”œโ”€โ”€ docs
    โ”‚   โ”œโ”€โ”€ controllers
    โ”‚   โ”‚   โ”œโ”€โ”€ **/*.js
    โ”‚   โ”‚   โ”œโ”€โ”€ **/*.yml
    โ”‚   โ””โ”€โ”€ models
    โ”‚       โ”œโ”€โ”€ **/*.js
    โ”‚       โ”œโ”€โ”€ **/*.yml
  • Other sample in YAML and JS format please refer this link

Open http://localhost:3333/docs in your browser, ayeey ๐ŸŽ‰
For detail usage, please check the swagger specification in this link.

Command List

Command Description
adonis swagger:export Export config file & swagger-ui assets
adonis swagger:remove Remove config file & swagger-ui assets
adonis swagger:remove-docs Remove swagger-ui only

Dependencies

Thanks

Special thanks to the creator(s) of AdonisJS for creating such a great framework.

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.