MEAN.JS - API REST

En este capítulo, veremos nuestra aplicación interactuando a través de una API REST con nuestra base de datos utilizando métodos HTTP. El término REST significa REpresentational State Transfer, que es un estilo arquitectónico diseñado para comunicarse con servicios web y API significa Application Program Interface que permite interactuar aplicaciones entre sí.

Primero, crearemos una API RESTful para obtener todos los elementos, crear el elemento y eliminar un elemento. Para cada elemento, MongoDB generará automáticamente _id. La siguiente tabla describe cómo la aplicación debe solicitar datos de la API:

Método HTTP Ruta URL Descripción
OBTENER

/api/students

Se utiliza para obtener todos los alumnos de la colección Student.
ENVIAR

/api/students/send

Se utiliza para crear un registro de estudiante en la colección Student.
ELIMINAR

/api/students/student_id

Se utiliza para eliminar el registro de un estudiante de la colección Student.

Rutas API RESTful

Primero discutiremos el método de publicación en las rutas de la API RESTful.

ENVIAR

Primero, creemos un registro en la colección Student a través de nuestra API REST. El código para este caso particular se puede encontrar en el archivo server.js . Como referencia, una parte del código se pega aquí:

app.post('/api/students/send', function (req, res) {
   var student = new Student(); // create a new instance of the student model
   student.name = req.body.name; // set the student name (comes from the request)
   student.save(function(err) {
      if (err)
         res.send(err);
         res.json({ message: 'student created!' });
   });
});

Ejecución

Puede descargar el código fuente de esta aplicación en este enlace . Descargue el archivo zip; extraerlo en su sistema. Abra la terminal y ejecute el siguiente comando para instalar las dependencias del módulo npm.

$ cd mean-demon-consuming_rest_api
$ npm install

Para analizar la solicitud, necesitaríamos el paquete del analizador corporal. Por lo tanto, ejecute el siguiente comando para incluirlo en su aplicación.

npm install --save body-parser

El código fuente adjunto ya tiene esta dependencia, por lo tanto, no es necesario ejecutar el comando anterior, es solo para su información.

Para ejecutar la aplicación, navegue hasta el directorio de su proyecto recién creado y ejecútelo con el comando que se proporciona a continuación:

npm start

Obtendrá una confirmación como se muestra en la imagen a continuación:

Hay muchas herramientas para probar las llamadas a la API, aquí estamos usando una de las extensiones fáciles de usar para Chrome llamada Postman REST Client .

Abra Postman REST Client, ingrese la URL como http://localhost:3000/api/students/send, seleccione el método POST . A continuación, ingrese los datos de la solicitud como se muestra a continuación:

Tenga en cuenta que estamos enviando los datos del nombre como x-www-form-urlencoded . Esto enviará todos nuestros datos al servidor Node como cadenas de consulta.

Haga clic en el botón Enviar para crear un registro de estudiante. Aparecerá un mensaje de éxito como se muestra a continuación:

OBTENER

A continuación, obtengamos todos los registros de los estudiantes del mongodb. Es necesario escribir la siguiente ruta. Puede encontrar el código completo en el archivo server.js .

app.get('/api/students', function(req, res) {
   // use mongoose to get all students in the database
   Student.find(function(err, students) {
      // if there is an error retrieving, send the error.
      // nothing after res.send(err) will execute
      if (err)
         res.send(err);
      res.json(students); // return all students in JSON format
   });
});

A continuación, abra Postman REST Client, ingrese la URL como

http://localhost:3000/api/students, seleccione el método GET y haga clic en el botón Enviar para obtener todos los estudiantes.

ELIMINAR

A continuación, veamos cómo eliminar un registro de nuestra colección mongo a través de una llamada a la API REST.

Es necesario escribir la siguiente ruta. Puede encontrar el código completo en el archivo server.js .

app.delete('/api/students/:student_id', function (req, res) {
   Student.remove({
      _id: req.params.student_id
   }, function(err, bear) {
      if (err)
         res.send(err);
      res.json({ message: 'Successfully deleted' });
   });
});

A continuación, abra Postman REST Client, ingrese la URL como

http://localhost:3000/api/students/5d1492fa74f1771faa61146d

(aquí 5d1492fa74f1771faa61146d es el registro que eliminaremos de la colección Student).

Seleccione el método ELIMINAR y haga clic en el botón Enviar para obtener todos los estudiantes.

Puede verificar MongoDB para los datos eliminados, haciendo una llamada GET a http://localhost:3000/api/students/5d1492fa74f1771faa61146d.