Documented Connect/Express Router
JavaScript
Switch branches/tags
Nothing to show
Pull request Compare This branch is 2 commits ahead, 20 commits behind anodejs:master.
Permalink
Failed to load latest commit information.
node_modules
tests
LICENSE Add initial version Jan 14, 2012
README.md update docRouter to support restdoc initial draft May 3, 2012
doc.jade update docRouter to support restdoc initial draft May 3, 2012
index.js
methods.js
package.json Update package.json Feb 12, 2012

README.md

DocRouter

A Connect/Express router wrapper which exposes a formatted description of the available services of a server. The documentation is available is multiple formats (RestDoc Json, Html).

The usage mimics the regular router's behavior.

Retrieving the documentation

Two options:

Supported outputs

  • JSON (Accept: application/json)
  • HTML (Accept: text/html)

docRouter follows the RestDoc spec (https://github.com/RestDoc), RestDoc is a live spec so please expect chagnes over time.

Examples

Connect Style

var docRouter = require('docrouter').DocRouter;
var server = connect.createServer(docRouter(connect.router, "http://myservice.mydomain.com", function(app) {
    app.get('/:app', handleGetApp,
        {
            id: "GetApp",
            doc: "Gets the app",
            params: {
                app: {
                    style: "template",
                    type: "string",
                    required: true
                }
            },
            response: {
                doc: "Description of response body",
                example: "{ name: 'myApp' }"
            }
        });
    app.post('/:app', handleAddApp,
        {
            id: "UpdateApp",
            doc: "Updates the app",
            params: {
                app: {
                    style: "template",
                    type: "string",
                    required: true
                }
            },
            request: {
                doc: "Description of request body",
                params: {
                    name: { doc: "app new name", type: "string", reuired: true }
                },
                example: "POST /myApp \n { name: 'my new app' }"
            }
        });
});
);
server.listen(5000);

Express Style

var docRouter = require('docrouter').DocRouter;
var app = express.createServer();

docRouter(app, "http://myservice.mydomain.com");

app.get('/:app', handleGetApp,
    {
        id: "GetApp",
        doc: "Gets the app",
        params: {
            app: {
                style: "template",
                type: "string",
                required: true
            }
        }
    });

app.post('/:app', handleAddApp,
    {
        id: "UpdateApp",
        doc: "Updates the app",
        params: {
            app: {
                style: "template",
                type: "string",
                required: true
            }
        }
    });

app.listen(5000);

#Credits#

#License# MIT