Agregando rutas en Hapi.Js

Crear un API con hapi.js es bastante sencillo, pero hasta ahora no hace gran cosa por no decir NADA.

Luego de leer la documentación sobre routes voy a crear el primer endpoint de mi api, ya que será el principal lo haré dentro de una carpeta llamada main.
Dentro de esta carpeta crearé un archivo javascript en el que voy a definir una ruta que luego la exportaré para ser usada por mi server.

var mainRoute = {

    method: 'GET',

    path: '/',

    handler: function (request, reply) {

        reply('Peruvian Congress API');

    }

}

module.exports = mainRoute;  

Según la documentación lo mínimo indispensable para definir una ruta en hapi.js es el método: que recibe un string con el método HTTP válido aunque también puede recibir un array de strings en el caso deseamos que ese endpoint pueda ser consumido desde una petición GET o POST, un path que representa el url del endpoint y un handler, que es lo que se ejecutará cuando alguien haga un request a la ruta definida. Este handler es una función que tiene dos parámetros request y reply.
Esta ruta es solo demostrativa ya que no hay nada de mi aplicación que realmente requiera alguna funcionalidad así que solo vamos a retornar un string con el mensaje Peruvian Congress API.
Para eso usamos la variable reply y le pasamos el mensaje anterior, al hacer esto hapi.js va a asumir que estoy retornando un escenario de éxito y por defecto retornará un OK (Http Status 200) al cliente.

Agregando la ruta al servidor

Ya tengo la ruta, pero no se verá ningún cambio en el API si no la agregamos al server que creé anteriormente.
Vuelvo al archivo server.js y creo una variable mainRoute la cual va a referenciar la ruta que acabo de crear.
Para agregarla al servidor es tan simple como llamar al método route y agregarle el objeto que define la ruta, tener en cuenta que las rutas deben ser agregadas luego de crear la conexión (método connection()), pero antes de llamar al método start().

var mainRoute = require('./main/main.route');

server.route(mainRoute);

server.start(function () {

    console.log('Server running at ', server.info.uri);

});

Si ejecuto el servidor y voy a la ruta principal voy a ver el mensaje que indiqué en el handler.

hapijs peruvian congress

El código de la aplicación como siempre en mi cuenta de github

https://github.com/eperedo/congress-api/tree/adding-routes