https://github.com/rametta/quantor
💃 Simple SSR - JSON to HTML - API Docs
https://github.com/rametta/quantor
api docs mustache node ssr swagger
Last synced: about 1 year ago
JSON representation
💃 Simple SSR - JSON to HTML - API Docs
- Host: GitHub
- URL: https://github.com/rametta/quantor
- Owner: rametta
- License: apache-2.0
- Created: 2018-09-18T11:50:11.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2018-10-05T11:38:31.000Z (over 7 years ago)
- Last Synced: 2025-04-06T10:50:27.596Z (about 1 year ago)
- Topics: api, docs, mustache, node, ssr, swagger
- Language: HTML
- Homepage: https://quantor.surge.sh
- Size: 129 KB
- Stars: 3
- Watchers: 2
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
[](http://npm.im/quantor)
[](https://travis-ci.com/rametta/quantor)
[](http://makeapullrequest.com)
[](https://github.com/rametta/quantor/)
[](https://opensource.org/licenses/Apache-2.0)
# 💃 Quantor
Blazing fast alternative to Swagger. [Demo](https://quantor.surge.sh/)
*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
```js
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](/sample.json) for the structure expected or see below.
Basic structure:
```json
{
"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](/CONTRIBUTING.md) and check out our [issues](https://github.com/rametta/quantor/issues). Pick anything that tickles your fancy or create an issue that you would find useful.