Node.js

Crear una API RESTful con Node.js, Hapi y Couchbase NoSQL

Desarrollar aplicaciones Node.js con Express es sin duda una opción muy popular, sin embargo no es la única opción y puede que ni siquiera sea la mejor. Recientemente empecé a investigar Hapi que se define a sí mismo como un marco para servicios, algo que no existía exactamente cuando apareció Express.

Anteriormente había escrito sobre creación de una API RESTful con Node.js y Expresspero esta vez vamos a explorar la posibilidad de hacer lo mismo con Hapi.

Antes de invertir demasiado en el código, tenemos que averiguar qué es exactamente lo que vamos a construir. El objetivo aquí es crear una aplicación de dos puntos finales. Un punto final debe permitirnos crear datos en la base de datos y el otro debe permitirnos leer de la base de datos.

Cree un nuevo directorio de proyecto en algún lugar de su ordenador y ejecute el siguiente comando desde el símbolo del sistema dentro de ese directorio:

El comando anterior creará un nuevo proyecto Node.js estableciendo un directorio paquete.json archivo. El siguiente paso es instalar cada una de las dependencias del proyecto.

Ejecute lo siguiente desde la línea de comandos:

El comando anterior descargará el SDK de Couchbase Node.js, el framework Hapi, Joi para la validación de datos, y un paquete para generar valores UUID para representar nuestras claves de documentos NoSQL.

Siga adelante y cree un app.js dentro de su proyecto. Aquí es donde tendremos toda nuestra información de enrutamiento y lógica de base de datos. Abra este app.js e incluya el siguiente código JavaScript:

El código anterior nos pondrá en marcha. Importa cada una de las dependencias de nuestro proyecto, inicializa Hapi para un host y puerto específicos, y establece una conexión con Couchbase. También hemos definido una única ruta para representar nuestra ruta raíz.

Para este ejemplo, Couchbase se ejecutará localmente y utilizaremos un Bucket llamado por defecto. Para obtener información sobre la instalación de Couchbase, consulte mis tutoriales de Mac, Linuxy Windows.

Ahora podemos preocuparnos de nuestros dos puntos finales que interactúan con la base de datos.

El primer punto final, y probablemente el más sencillo, servirá para devolver una lista de documentos, en este caso personas, que se hayan creado previamente:

Fíjese en el manipulador método. En él construimos una consulta N1QL que obtiene todos los documentos que tienen un tipo que coincida con persona. Esto significa que podemos tener muchos otros tipos de documentos que no serán recogidos por nuestra consulta.

Si hay algún problema con la consulta, devolveremos un error con un código de respuesta 500, de lo contrario devolveremos los resultados de la consulta.

El siguiente endpoint es donde hacemos uso de Joi para la validación de datos. Echa un vistazo al siguiente código JavaScript:

Cuando un cliente intenta consumir desde este endpoint, la validación ocurre como parte de Hapi. En este proceso de validación inspeccionamos la carga útil y nos aseguramos de que cada una de nuestras propiedades cumple los criterios. En este caso, tanto nombre y apellido deben estar presentes. Está prohibido tipo y marca de tiempo en el cuerpo de la petición. Si existen, se devolverá un error. Si no existen, se utilizará un valor por defecto.

Si nuestra validación pasa, podemos insertar los datos en Couchbase con un id único. Los datos también serán devueltos en la respuesta.

Conclusión

Acaba de ver cómo crear una API RESTful muy sencilla con Hapi y Servidor Couchbase. He estado usando Express desde el principio, pero cuando se trata de Hapi, siento que fue mucho mejor diseñado para la creación de servicios web. Sin embargo, ambos harán el trabajo y si quieres ver una alternativa a Express, echa un vistazo a esto tutorial anterior Escribí.

Para obtener más información sobre el uso de Couchbase con Node.js, consulte la página Portal para desarrolladores de Couchbase.

Comparte este artículo
Recibe actualizaciones del blog de Couchbase en tu bandeja de entrada
Este campo es obligatorio.

Autor

Publicado por Nic Raboy, Defensor del Desarrollador, Couchbase

Nic Raboy es un defensor de las tecnologías modernas de desarrollo web y móvil. Tiene experiencia en Java, JavaScript, Golang y una variedad de frameworks como Angular, NativeScript y Apache Cordova. Nic escribe sobre sus experiencias de desarrollo relacionadas con hacer el desarrollo web y móvil más fácil de entender.

1 Comentarios

  1. así que parece que esto puede ser un poco anticuado con los cambios de Hapi.js por lo que si usted está usando una versión más reciente de Hapi, tuve que codificarlo así

    const Hapi = require("hapi");
    const Couchbase = require("couchbase");
    const UUID = require("uuid");
    const Joi = require("joi");

    const servidor = nuevo Hapi.Servidor({
    host: 'localhost',
    puerto: 3000
    });
    const N1qlQuery = Couchbase.N1qlQuery;

    const cluster = new Couchbase.Cluster("http://localhost");
    const bucket = cluster.openBucket("default", "");

    servidor.route({
    método: "GET",
    ruta: "/",
    handler: (request, response) => {
    devolver "Hola Mundo";
    }
    });

    server.start(error => {
    if(error) {
    arrojar error;
    }
    console.log("Escuchando en " + server.info.uri);
    });

Deja un comentario

¿Listo para empezar con Couchbase Capella?

Empezar a construir

Consulte nuestro portal para desarrolladores para explorar NoSQL, buscar recursos y empezar con tutoriales.

Utilizar Capella gratis

Ponte manos a la obra con Couchbase en unos pocos clics. Capella DBaaS es la forma más fácil y rápida de empezar.

Póngase en contacto

¿Quieres saber más sobre las ofertas de Couchbase? Permítanos ayudarle.