@siddhesh3/api-docker

0.1.1 • Public • Published

Node Api Docker

Document generator for Node JS APIs (Beta Stage), Generate stylish API Documentation html pages within no time!

Demo

Installation

$ npm install @siddhesh3/api-docker --save

Register

index.js

const { ApiDocker, Sampleable } = require('@siddhesh3/api-docker');

ApiDocker.register({
  app, // Can be an ExpressJS app
  jsonFilePath: __dirname + '/public/docs/api-data.json',
  apiName: 'My Sample API',
  apiDesc: 'Hello world node js API',
  apiURL: 'https://www.prodapilink.com/',
  gettingStartedHTML: `<p>REST API......</p>
  <h5>...</h5>`,
  usageHTML: `
  <p>Define how to use API......</p>
  <p>...</p>`
});

Usage

Step 1: Define request class

class SampleGetAPIEndpointRequest extends Sampleable {
  userId;

  static defaults() {
    return {
      userId: 1
    };
  }

  static example() {
    return {
      userId: 35
    };
  }
}

Step 2: Define response class

class SampleGetAPIEndpointResponse extends Sampleable {
  userData;

  static defaults() {
    return {
      userData: {
        id: 1,
        name: ''
      }
    };
  }

  static example() {
    return {
      userData: {
        id: 35,
        name: 'John Doe'
      }
    };
  }
}

Step 3: Use it on an endpoint

ApiDocker.instance.get('/sampleGetAPIEndpoint', (request, response) => {
  // some api code
}, {
  metaData: { desc: 'Description about your api endpoint...' },
  statusCodes: [200],
  reqModel: SampleGetAPIEndpointRequest,
  respModel: SampleGetAPIEndpointResponse,
  category: 'Client'
});

Or document it directly

ApiDocker.instance.dockDecorator('/sampleGetAPIEndpoint', () => {}, {
  metaData: { desc: 'Description about your api endpoint...' },
  statusCodes: [200],
  reqModel: SampleGetAPIEndpointRequest,
  respModel: SampleGetAPIEndpointResponse,
  category: 'Client'
});

Step 4: Once all documentation is done in the code, generate its JSON

index.js

ApiDocker.instance.generateDocJSON();

This will generate api-data.json file in configured location.

This will generate the JSON on runtime when node api is started.

Step 5: Download and use a api-docker viewer

Download a node-api-viewer and put /docs/ folder from viewer in your api's /public folder & Replace the generated api-data.json

Dependencies (0)

    Dev Dependencies (0)

      Package Sidebar

      Install

      npm i @siddhesh3/api-docker

      Weekly Downloads

      0

      Version

      0.1.1

      License

      ISC

      Unpacked Size

      11.9 kB

      Total Files

      4

      Last publish

      Collaborators

      • siddhesh3