in

Node.js – API RESTful


¿Qué es la arquitectura REST?

REST significa Transferencia de Estado REpresentacional. REST es una arquitectura basada en estándares web y utiliza el protocolo HTTP. Gira en torno al recurso donde cada componente es un recurso y se accede a un recurso mediante una interfaz común utilizando métodos estándar HTTP. REST fue introducido por primera vez por Roy Fielding en 2000.

Un servidor REST simplemente proporciona acceso a los recursos y el cliente REST accede y modifica los recursos mediante el protocolo HTTP. Aquí, cada recurso se identifica mediante URI / ID globales. REST utiliza varias representaciones para representar un recurso como texto, JSON, XML, pero JSON es el más popular.

Métodos HTTP

Los siguientes cuatro métodos HTTP se utilizan comúnmente en la arquitectura basada en REST.

  • OBTENER : Se utiliza para proporcionar un acceso de solo lectura a un recurso.

  • PONER – Esto se usa para crear un nuevo recurso.

  • ELIMINAR : Se utiliza para eliminar un recurso.

  • CORREO : Se utiliza para actualizar un recurso existente o crear un nuevo recurso.

Servicios web RESTful

Un servicio web es una colección de protocolos y estándares abiertos que se utilizan para intercambiar datos entre aplicaciones o sistemas. Las aplicaciones de software escritas en varios lenguajes de programación y que se ejecutan en varias plataformas pueden usar servicios web para intercambiar datos a través de redes informáticas como Internet de una manera similar a la comunicación entre procesos en una sola computadora. Esta interoperabilidad (por ejemplo, la comunicación entre Java y Python, o aplicaciones de Windows y Linux) se debe al uso de estándares abiertos.

Los servicios web basados ​​en la arquitectura REST se conocen como servicios web RESTful. Estos servicios web utilizan métodos HTTP para implementar el concepto de arquitectura REST. Un servicio web RESTful generalmente define un URI, un identificador uniforme de recursos, un servicio, que proporciona una representación de recursos como JSON y un conjunto de métodos HTTP.

Creando RESTful para una biblioteca

Considere que tenemos una base de datos basada en JSON de usuarios que tienen los siguientes usuarios en un archivo users.json:

{
   "user1" : {
      "name" : "mahesh",
      "password" : "password1",
      "profession" : "teacher",
      "id": 1
   },
   
   "user2" : {
      "name" : "suresh",
      "password" : "password2",
      "profession" : "librarian",
      "id": 2
   },
   
   "user3" : {
      "name" : "ramesh",
      "password" : "password3",
      "profession" : "clerk",
      "id": 3
   }
}

Basándonos en esta información, proporcionaremos las siguientes API RESTful.

No Señor. URI Método HTTP POST cuerpo Resultado
1 listUsers OBTENER vacío Mostrar lista de todos los usuarios.
2 agregar usuario CORREO Cadena JSON Agregue detalles del nuevo usuario.
3 borrar usuario ELIMINAR Cadena JSON Eliminar un usuario existente.
4 :identificación OBTENER vacío Muestra los detalles de un usuario.

Mantengo la mayor parte de la parte de todos los ejemplos en forma de codificación rígida, asumiendo que ya sabe cómo pasar valores desde el front-end usando Ajax o datos de formulario simple y cómo procesarlos usando express Solicitud objeto.

Lista de usuarios

Implementemos nuestra primera API RESTful listUsers usando el siguiente código en un archivo server.js –

server.js

var express = require('express');
var app = express();
var fs = require("fs");

app.get('/listUsers', function (req, res) {
   fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) {
      console.log( data );
      res.end( data );
   });
})

var server = app.listen(8081, function () {
   var host = server.address().address
   var port = server.address().port
   console.log("Example app listening at http://%s:%s", host, port)
})

Ahora intente acceder a la API definida usando URL: http://127.0.0.1:8081/listUsers y Método HTTP: OBTENER en la máquina local usando cualquier cliente REST. Esto debería producir el siguiente resultado:

Puede cambiar la dirección IP dada cuando ponga la solución en el entorno de producción.

{
   "user1" : {
      "name" : "mahesh",
      "password" : "password1",
      "profession" : "teacher",
      "id": 1
   },
   
   "user2" : {
      "name" : "suresh",
      "password" : "password2",
      "profession" : "librarian",
      "id": 2
   },
   
   "user3" : {
      "name" : "ramesh",
      "password" : "password3",
      "profession" : "clerk",
      "id": 3
   }
}

Agregar usuario

La siguiente API le mostrará cómo agregar un nuevo usuario en la lista. A continuación se muestra el detalle del nuevo usuario:

user = {
   "user4" : {
      "name" : "mohit",
      "password" : "password4",
      "profession" : "teacher",
      "id": 4
   }
}

Puede aceptar la misma entrada en forma de JSON usando una llamada Ajax, pero para enseñar el punto de vista, lo estamos codificando aquí. Lo siguiente es el agregar usuario API a un nuevo usuario en la base de datos –

server.js

var express = require('express');
var app = express();
var fs = require("fs");

var user = {
   "user4" : {
      "name" : "mohit",
      "password" : "password4",
      "profession" : "teacher",
      "id": 4
   }
}

app.post('/addUser', function (req, res) {
   // First read existing users.
   fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) {
      data = JSON.parse( data );
      data["user4"] = user["user4"];
      console.log( data );
      res.end( JSON.stringify(data));
   });
})

var server = app.listen(8081, function () {
   var host = server.address().address
   var port = server.address().port
   console.log("Example app listening at http://%s:%s", host, port)
})

Ahora intente acceder a la API definida usando URL: http://127.0.0.1:8081/addUser y Método HTTP: POST en la máquina local usando cualquier cliente REST. Esto debería producir el siguiente resultado:

{
   "user1":{"name":"mahesh","password":"password1","profession":"teacher","id":1},
   "user2":{"name":"suresh","password":"password2","profession":"librarian","id":2},
   "user3":{"name":"ramesh","password":"password3","profession":"clerk","id":3},
   "user4":{"name":"mohit","password":"password4","profession":"teacher","id":4}
}

Mostrar detalle

Ahora implementaremos una API a la que se llamará usando el ID de usuario y mostrará el detalle del usuario correspondiente.

server.js

var express = require('express');
var app = express();
var fs = require("fs");

app.get('/:id', function (req, res) {
   // First read existing users.
   fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) {
      var users = JSON.parse( data );
      var user = users["user" + req.params.id] 
      console.log( user );
      res.end( JSON.stringify(user));
   });
})

var server = app.listen(8081, function () {
   var host = server.address().address
   var port = server.address().port
   console.log("Example app listening at http://%s:%s", host, port)
})

Ahora intente acceder a la API definida usando URL: http://127.0.0.1:8081/2 y Método HTTP: OBTENER en la máquina local usando cualquier cliente REST. Esto debería producir el siguiente resultado:

{"name":"suresh","password":"password2","profession":"librarian","id":2}

Borrar usuario

Esta API es muy similar a la API addUser, donde recibimos datos de entrada a través de req.body y luego, según el ID de usuario, eliminamos ese usuario de la base de datos. Para mantener nuestro programa simple, asumimos que vamos a eliminar al usuario con ID 2.

server.js

var express = require('express');
var app = express();
var fs = require("fs");

var id = 2;

app.delete('/deleteUser', function (req, res) {
   // First read existing users.
   fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) {
      data = JSON.parse( data );
      delete data["user" + 2];
       
      console.log( data );
      res.end( JSON.stringify(data));
   });
})

var server = app.listen(8081, function () {
   var host = server.address().address
   var port = server.address().port
   console.log("Example app listening at http://%s:%s", host, port)
})

Ahora intente acceder a la API definida usando URL: http://127.0.0.1:8081/deleteUser y Método HTTP: DELETE en la máquina local usando cualquier cliente REST. Esto debería producir el siguiente resultado:

{"user1":{"name":"mahesh","password":"password1","profession":"teacher","id":1},
"user3":{"name":"ramesh","password":"password3","profession":"clerk","id":3}}

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

how to read file line by line in java output1

Cómo leer un archivo línea por línea en Java

apple touch icon@2

¿Cómo puedo hacer que un script de Python sea ejecutable independiente para que se ejecute sin NINGUNA dependencia?