quantor
TypeScript icon, indicating that this package has built-in type declarations

2.1.5 • Public • Published

npm travis PRs Welcome Open Source Love License

💃 Quantor

Blazing fast alternative to Swagger. Demo

Complete API docs up and running in less than 5 mins!

Features

  • Premade and custimizable UI
  • Extremely fast rendering with mustacheJS
  • Easy to install and setup
  • SSR 100% supported (and recommended)
  • Tiny footprint - less than 3kb

Install

yarn add quantor

Usage

import quantor from 'quantor'
 
const json = {...JSON API Docs}
quantor(json)(html => /* do something with html */)
 
// Express or GCF example
quantor(json)(html => res.set('Content-Type', 'text/html').send(new Buffer(html)))

JSON Structure

Quantor generates the docs based on the JSON provided. The JSON must follow the Quantor JSON Spec. See this example file for the structure expected or see below.

Basic structure:

{
  "title": "String",
  "description": "String",
  "base": "String",
  "endpoints": [
    {
      "name": "String",
      "display": "String",
      "description": "String",
      "handlers": {
        "GET": {
          "optionalQueryParams": [
            {
              "name": "String",
              "description": "String",
              "type": "String",
              "default": "Any"
            }
          ],
          "responses": [
            {
              "code": 200,
              "model": "User"
            }
          ]
        }
      }
    }
  ],
  "models": {
    "User": {
      "name": "String",
      "age": "Integer"
    }
  }
}

Facts:

  • Endpoints expects an array of endpoint objects.
  • Models is an optional map of objects used for response models.
  • Each endpoint object should have a handlers property.
  • The handlers property is a map of http methods like:
    • GET
    • POST
    • PUT
    • DELETE
    • PATCH
    • OPTIONS
    • HEAD
  • Each http method should be an object with optional properties of:
    • requiredQueryParams
    • optionalQueryParams
    • requiredBodyParams
    • optionalBodyParams
    • requiredHeaders
    • optionalHeaders
    • responses
  • Each of those properties should be an array of objects with a name, description, default & type.

Contributing

Check out our contributer docs and check out our issues. Pick anything that tickles your fancy or create an issue that you would find useful.

Package Sidebar

Install

npm i quantor

Weekly Downloads

1

Version

2.1.5

License

Apache-2.0

Unpacked Size

152 kB

Total Files

8

Last publish

Collaborators

  • rametta