Latest web development tutorials

Node.js API REST

¿Qué es el descanso?

Esa transferencia RESTO estado representacional (Inglés: Transferencia de estado representacional, llamado REST) ​​presentado por el Dr. Roy Fielding en su tesis doctoral en 2000 a un estilo de arquitectura de software.

Transferencia de estado representacional es un conjunto de restricciones y principios de la arquitectura. Cumplir con estas restricciones y principios de diseño o aplicación es reparador. Tenga en cuenta que, el resto es un estilo en lugar de la norma. RESTO generalmente se basa en el uso de HTTP, URI, y XML (un subconjunto del lenguaje de marcado generalizado estándar bajo) y HTML (una aplicación bajo el Standard Generalized Markup Language) estos protocolos y estándares generalizados existentes. RESTO normalmente utilizan formato de datos JSON.

método HTTP

Los siguientes cuatro métodos básicos de la arquitectura REST:

  • GET - se utiliza para recuperar los datos.

  • PUT - se utiliza para agregar datos.

  • DELETE - para borrar los datos.

  • Post - utilizada para actualizar o añadir datos.


Servicios Web REST

servicio web es A, autónomos, aplicaciones independientes de la plataforma, débilmente acoplados programables basados ​​en la web, puede utilizar Open XML (un subconjunto del lenguaje de marcado generalizado estándar bajo) estándares para describir, publicar, descubrir, la coordinación y configurar estas aplicaciones para el desarrollo de aplicaciones distribuidas interoperables.

arquitectura de servicios Web basados ​​en REST que sea tranquilo.

Debido a la transferencia de peso ligero y directo a través de HTTP datos característicos, método de servicio Web REST se ha convertido en la alternativa más común. Se puede utilizar una variedad de lenguajes (como los programas de Java, Perl, Ruby, Python, PHP y Javascript [incluyendo Ajax]) para lograr el cliente.

Servicios Web REST se puede acceder normalmente a través automático del cliente o en nombre de la aplicación del usuario. Sin embargo, esta simplicidad permite a los usuarios los servicios que interactúen directamente con ellos utilizando su navegador Web para construir una URL GET y leer los rendimientos.

Más informes, puede ver: Arquitectura REST Comentarios


Creación de REST

En primer lugar, crear un archivo de recursos users.json datos JSON, dice lo siguiente:

{
   "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
   }
}

Con base en los datos anteriores, hemos creado la siguiente API REST:

No. URI método HTTP Enviar contenido resultado
1 ListUsers GET vacía Muestra una lista de todos los usuarios
2 addUser POSTAL cadena JSON Añadir un nuevo usuario
3 deleteUser BORRAR cadena JSON eliminar usuario
4 : Id GET vacía Mostrar programa de usuario

Obtener una lista de los usuarios:

El siguiente código, creamos unaREST API, ListUsers para leer la información de la lista de usuarios, código del archivo server.js es el siguiente:

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("应用实例,访问地址为 http://%s:%s", host, port)

})

A continuación, ejecute el comando siguiente:

$ node server.js 
应用实例,访问地址为 http://0.0.0.0:8081

El acceso en los http://127.0.0.1:8081/listUsers navegador, los resultados son los siguientes:

{
   "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

El siguiente código, creamos un addUser APIREST, que se utiliza para agregar nuevos datos de usuario, código de archivo server.js es el siguiente:

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

//添加的新用户数据
var user = {
   "user4" : {
      "name" : "mohit",
      "password" : "password4",
      "profession" : "teacher",
      "id": 4
   }
}

app.get('/addUser', function (req, res) {
   // 读取已存在的数据
   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("应用实例,访问地址为 http://%s:%s", host, port)

})

A continuación, ejecute el comando siguiente:

$ node server.js 
应用实例,访问地址为 http://0.0.0.0:8081

El acceso en la http://127.0.0.1:8081/addUser navegador, los resultados son los siguientes:

{ 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 programa de usuario

El siguiente código, creamos una APIREST: ID (identificador de usuario),especifique los detalles para que el usuario lea, código del archivo server.js es el siguiente:

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

app.get('/:id', function (req, res) {
   // 首先我们读取已存在的用户
   fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) {
       data = JSON.parse( data );
       var user = data["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("应用实例,访问地址为 http://%s:%s", host, port)

})

A continuación, ejecute el comando siguiente:

$ node server.js 
应用实例,访问地址为 http://0.0.0.0:8081

El acceso en la http://127.0.0.1:8081/2 navegador, los resultados son los siguientes:

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

eliminar usuario

El siguiente código, creamos un deleteUser APIREST, información detallada para el usuario especificado para eliminar el siguiente ejemplo, el identificador de usuario es 2, código de archivo server.js es el siguiente:

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

var id = 2;

app.get('/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("应用实例,访问地址为 http://%s:%s", host, port)

})

A continuación, ejecute el comando siguiente:

$ node server.js 
应用实例,访问地址为 http://0.0.0.0:8081

El acceso en la http://127.0.0.1:8081/deleteUser navegador, los resultados son los siguientes:

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