create-raml

    3.4.6 • Public • Published

    NPM version NPM downloads MIT License js-standard-style Build Status: Linux Build Status: Windows Coverage Status

    create-raml

    Create RAML from object or Express.js application

    v3.4.6

    Dependencies

    • Node.js v.6.0 or higher

    Installation

    npm i -S create-raml

    Create RAML based on Express.js

    Simple express example

    var express = require('express');
    var Raml = require('create-raml');
     
    var app = express();
     
    var raml = new Raml({ express: app });
     
    // regular app express workflow ( app.get, app.post, app.listen... etc )

    Get created raml

    curl 127.0.0.1:3000/api.raml

    Extended express example

    Simple example

    var express = require('express');
    var Raml = require('create-raml');
     
    var app = express();
    var raml = new Raml({ express: app });
     
    app.get('/movies', function (req, res) { res.send('List of all movies'); });
    app.post('/movies', function (req, res) { res.send('Add new movie'); });
    app.get('/movies/:id', function (req, res) { res.send('Get movie by id'); });
    app.delete('/movies/:id', function (req, res) { res.send('Delete movie by id'); });
     
    app.listen(3000, function () { console.log('Example app listening on port 3000!'); });

    curl 127.0.0.1:3000/api.raml

    Result

    #%RAML 1.0
    title: 
    version: 
    
    types:
    
    /api.raml:
      get:
        description: get /api.raml
    
    /movies:
      get:
        description: get /movies
      post:
        description: post /movies
        
      /{id}:
        get:
          description: get /movies/:id
        delete:
          description: delete /movies/:id
    

    Create RAML from object

    var Raml = require('create-raml');
    var raml = new Raml({
      title: 'Testing',
      baseUri: 'http://localhost:3000',
      version: 'v1',
    });
     
    raml.type('books', {
      name: { type: 'string', required: true },
      numberOfPages: { type: 'integer' },
    });
     
    raml.methods('books', 'get', {
      description: 'Get information about all books',
      responses: {
        200: { 'application/json': [{ name: 'one', author: { name: 'Art' } }] },
        404: { 'application/json': { code: '120', message: 'Books not found' } },
      },
    });
     
    raml.generate(function (err, ramlText) {
      console.log(ramlText);
    });

    Result

    #%RAML 1.0
    title: Testing
    baseUri: http://localhost:3000
    version: v1
    
    types:
      books: |
         {
           "name": {
             "type": "string",
             "required": true
           },
           "numberOfPages": {
             "type": "integer"
           }
         }
    
    /books:
      get:
        description: Get information about all books
        responses:
          200:
            body:
              application/json:
                example: |
                 [
                   {
                     "name": "one",
                     "author": {
                       "name": "Art"
                     }
                   }
                 ]
          404:
            body:
              application/json:
                example: |
                 {
                   "code": "120",
                   "message": "Books not found"
                 }
    

    Options parameters

    var raml = new Raml(options);
    • version - version of RAML ( default: 1.0 )
    • express - an Express application
    • path - path to get API RAML ( default: /api.raml )
    • storeResponses - store first response as example ( default: false )
    • guessAll - make description quite pretty ( default: false )
    • title - title of API in document
    • baseUri - URI of API in document
    • versionAPI - version of API in document
    • templateFileName - path to template

    Tests

    npm test

    Change Log

    all changes

    Created by

    Dimitry, 2@ivanoff.org.ua

    curl -A cv ivanoff.org.ua

      This feature is exclusive to Teams

      Illustration of wombats

      The package file explorer is only available for Teams at the moment.

      We may support exploring this package in the future. Check back soon.

      Install

      npm i create-raml

      DownloadsWeekly Downloads

      1

      Version

      3.4.6

      License

      MIT

      Unpacked Size

      70.7 kB

      Total Files

      18

      Last publish

      Collaborators

      • avatar