Api Documentation
Kvell currently uses apidoc.js for providing API Documentation Mechanism in your application.
Note: The documentation library may change to some other package (like Swagger) in later versions.
Enable/disable
Kvell.js will automatically parse the apidocs directory to generate a documentation for your api endpoints. The documentation will be available at the /docs route.
If you do not want this, you can switch the registerDocsRoute in kvell.config.js to false which will then stop the parsing of the apidocs directory and unregister the /docs route in your application.
registerDocsRoute: Boolean;
By default, registerDocsRoute will always be true.
// kvell.config.js
module.exports = {
  ...
  registerDocsRoute: false
  ...
};
Docs flow
Apidoc.js follows the jsdoc pattern and makes it easier to write documentation for each of your routes.
You can edit your application's Api Documentation in the apidocs folder which looks something like the following:
  apidocs\
    example.js
    ...
    ...
    [routeName].js
The apidocs folder by default will consist of an example.js file which will have some basic examples on how to use apidoc.js. Each route should have a corresponding apidocs file to easily document each endpoint in that route.
Here's a simple example,
/**
 * @api {get} /user/:id Get User information and Date of Registration.
 * @apiVersion 0.2.0
 * @apiName GetUser
 * @apiGroup User
 *
 * @apiParam {Number} id Users unique ID.
 *
 * @apiSuccess {String} firstname  Firstname of the User.
 * @apiSuccess {String} lastname   Lastname of the User.
 * @apiSuccess {Date}   registered Date of Registration.
 *
 * @apiSuccessExample Success-Response:
 *     HTTP/1.1 200 OK
 *     {
 *       "firstname": "John",
 *       "lastname": "Doe"
 *     }
 *
 * @apiError UserNotFound The id of the User was not found.
 *
 * @apiErrorExample Error-Response:
 *     HTTP/1.1 404 Not Found
 *     {
 *       "error": "UserNotFound"
 *     }
 */
For in-depth guide on how to use apidoc.js, click here.
When you start your server, Kvell will automatically parse the apidocs to a static HTML website with a predefined UI layout provided by apidocs.
You can view the docs page in http://localhost:5001/docs.
The docs mechanism has a separate folder so that it is relatively easier to plug-in any documentation library.
Configuration in package.json
You can configure apidoc configurations in package.json, for example:
  ...
  "apidoc": {
    "name": "Application name",
    "version": "1.0.0",
    "description": "Description for your application",
    "title": "Title",
    "header": {
      "title": "My own header title"
    },
    "footer": {
      "title": "My own footer title"
    },
    "template": {
      "withGenerator": true
    }
  }
  ...
