hapi-raml

4.0.0 • Public • Published

Build Status NPM hapi-raml

This library will take your RAML, parse it using raml-parser, and then set up routes in hapi to match your RAML.

Installation

npm install hapi-raml

Usage

Require in hapi-raml, and pass it a reference to your hapi server, a hashmap of your Controllers, and the path to your RAML.

When you're ready, call hookup(), and hapi-raml will link up your hapi routes to your Controllers, and return a Promise that will tell you when it has finished. Then you can start your hapi server.

var HapiRaml = require('hapi-raml');
var server = new Hapi.Server();

var controllers = {};
controllers.MyController = new MyController();

var hapiRaml = new HapiRaml(server, controllers, './my.raml');

server.connection({ port: 3000 });

hapiRaml.hookup().then(function () {
    server.start();
});

Conventions

We borrow the collection/collection-item pattern from RAML and layer Controllers on top.

Your Controllers should feature at least the following functions, which should expect to receive the Hapi object request, and a callback reply.

GET (API Root)/collection maps to list()

Returns an Array of instances of the matching Model for this Controller.

POST (API Root)/collection maps to create()

Create a single instance of the matching Model for this Controller.

GET (API Root)/collection/{id} maps to fetch()

Returns a single instance of the matching Model for this Controller.

DELETE (API Root)/collection/{id} maps to delete()

Deletes the matching Model for this Controller.

POST||PATCH (API Root)/collection/{id} maps to update()

Updates the matching Model for this Controller.

ANY (API Root)/collection/{id}/(anything) maps to (anything)()

Whatever you decide!

Readme

Keywords

Package Sidebar

Install

npm i hapi-raml

Weekly Downloads

1

Version

4.0.0

License

MIT

Last publish

Collaborators

  • dave-irvine