Transfrom API documentation stored in Swagger spec YAML into formatted markdown and static HTML files. See the example output below.
This plugin requires Grunt.
If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
npm install static-api-docs --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('static-api-docs');
In your project's Gruntfile, add a section named static_api_docs
to the data object passed into grunt.initConfig()
.
grunt.initConfig({
static_api_docs: {
your_target: {
src: "path/to/the/swagger/spec/YAML/for/API"
dest: "path/to/the/destination/directory"
options: {
filename: "filename"
suppressMD: false
suppressHTML: false
}
},
},
})
Type: String
Default value: 'api-doc'
A string value that will be the root of the generated files (api-doc.md, api-doc.html).
Type: Boolean
Default value: false
A boolean that turns off generation of markdown output.
Type: Boolean
Default value: false
A boolean that turns off generation of HTML output.
grunt.initConfig({
static_api_docs: {
test: {
src: 'swagger.json',
dest: 'outputDir',
options: {
filename: 'my-static-doc',
}
}
},
})
Some example output created by this plugin and some example JSON following Swagger spec .
/products Products
#### /products 
Get all products with all attributes.
Name | Required | In | Type | Description |
---|---|---|---|---|
category | false | query | string | Filter by product category (e.g., "gizmo") |
Name | Type | Description |
---|---|---|
product_id | string | Unique identifier representing a specific product for a given latitude & longitude. For example, uberX in San Francisco will have a different product_id than uberX in Los Angeles. |
description | string | Description of product. |
display_name | string | Display name of product. |
category | string | Category of product. For example, "gizmo". |
Name | Type | Description |
---|---|---|
code | integer | |
message | string | |
fields | string |
In the event that your response JSON includes nested data, Static API Docs will render the nested properties with indentation. For example, a response property named "components" might be an object array, and can be represented ins Swagger spec JSON like:
"components": {
"type": "array",
"items": {
"type": "object",
"properties": {
"component_id": {
"type": "integer",
"description": "Unique identifier."
},
"component_name": {
"type": "string",
"description": "Display name of component."
}
}
}
}
The plugin will render the object array like this:
Name | Type | Description |
---|---|---|
components | Object[] | |
- component_id | integer | Unique identifier representing a specific component of a product. |
- component_name | string | Display name of component. |
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.
(Nothing yet)
Copyright (c) 2015 Spatial Development International, LLC. Licensed under the Apache license.