4.0.0 • Published 8 years ago

hapi-raml v4.0.0

Weekly downloads
1
License
MIT
Repository
github
Last release
8 years ago

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!

4.0.0

8 years ago

3.1.0

8 years ago

3.0.0

8 years ago

2.5.0

8 years ago

2.4.0

8 years ago

2.3.0

8 years ago

2.2.0

8 years ago

2.1.1

8 years ago

2.0.5

8 years ago

2.0.4

8 years ago

2.0.3

8 years ago

2.0.2

8 years ago

1.6.3

9 years ago

1.6.2

9 years ago

1.5.1

9 years ago

1.5.0

9 years ago

1.4.2

9 years ago

1.4.1

9 years ago

1.4.0

9 years ago

1.3.0

9 years ago

1.2.0

9 years ago

1.1.0

9 years ago

1.0.3

9 years ago