O melhor tutorial Node.js API RESTful em 2024. Neste tutorial você pode aprender O que é demais?,RESTful Web Services,criando RESTful,

Node.js API RESTful

O que é demais?

Essa transferência RESTO Representational State (Inglês: Representational State Transfer, denominado REST) ​​apresentado pelo Dr. Roy Fielding em sua tese de doutorado em 2000, para um estilo de arquitetura de software.

Representational State Transfer é um conjunto de restrições e princípios arquitetônicos. Atender a essas restrições e princípios de design ou aplicação é RESTful. Note-se que, o resto é um estilo, em vez do padrão. RESTO geralmente é baseado no uso de HTTP, URI, e XML (um subconjunto da Standard Generalized Markup Language abaixo) e HTML (um pedido ao abrigo do Standard Generalized Markup Language), estes protocolos e padrões generalizados existentes. RESTO normalmente usam formato de dados JSON.

método HTTP

A seguir quatro métodos básicos arquitetura de lazer:

  • GET - usado para recuperar dados.

  • PUT - usado para adicionar dados.

  • DELETE - para apagar os dados.

  • POST - usado para atualizar ou adicionar dados.


RESTful Web Services

serviço Web é um baixo acoplamento auto-suficientes, aplicações independentes de plataforma, e programáveis ​​baseados na web, você pode usar o Open XML (um subconjunto da Standard Generalized Markup Language abaixo) normas para descrever, publicar, descobrir, a coordenação e configurar esses aplicativos para o desenvolvimento de aplicações distribuídas interoperáveis.

Web Services arquitetura baseada em REST que é RESTful.

Devido à transferência leve e direta através de dados de característica HTTP, método de serviço Web RESTful tornou-se a alternativa mais comum. Você pode usar uma variedade de idiomas (como programas de Java, Perl, Ruby, Python, PHP e Javascript [incluindo Ajax]) para atingir o cliente.

serviços Web RESTful geralmente pode ser acessado através automático de cliente ou em nome da aplicação do usuário. No entanto, esta simplicidade permite que os usuários do serviço de interagir diretamente com eles usando o seu navegador da Web para construir uma URL GET e ler os retornos.

Mais relatórios, você pode ver: RESTful arquitetura Comentários


criando RESTful

Primeiro, crie um arquivo de recurso users.json dados JSON, tem o seguinte teor:

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

Com base nos dados acima, criamos o seguinte API RESTful:

Não. URI método HTTP Enviar conteúdo resultado
1 ListUsers GET vazio Exibe uma lista de todos os usuários
2 addUser POST string JSON Adicionar um novo usuário
3 Deleteuser APAGAR string JSON apagar Utilizador
4 : Id GET vazio Mostrar detalhes do usuário

Obter uma lista de usuários:

O código a seguir, criamos um ListUsers APIRESTful, para ler as informações da lista de usuários, o código de arquivo server.js é a seguinte:

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)

})

Em seguida, execute o seguinte comando:

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

Acesso nas http://127.0.0.1:8081/listUsers navegador, os resultados são os seguintes:

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

Adicionar Usuário

O código a seguir, criamos um addUser APIRESTful, usado para adicionar novos dados do utilizador, código de arquivo server.js é a seguinte:

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)

})

Em seguida, execute o seguinte comando:

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

Acesso no http://127.0.0.1:8081/addUser navegador, os resultados são os seguintes:

{ 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 detalhes do usuário

O código a seguir, criamos uma APIRESTful: id (identificação do usuário),especifique os detalhes para que o usuário leia, código de arquivo server.js é a seguinte:

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)

})

Em seguida, execute o seguinte comando:

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

Acesso no http://127.0.0.1:8081/2 navegador, os resultados são os seguintes:

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

apagar Utilizador

O código a seguir, criamos um Deleteuser APIRESTful, informações detalhadas para o usuário especificado para excluir o seguinte exemplo, a identificação do usuário é 2, código de arquivo server.js é a seguinte:

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)

})

Em seguida, execute o seguinte comando:

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

Acesso no http://127.0.0.1:8081/deleteUser navegador, os resultados são os seguintes:

{ user1:
   { name: 'mahesh',
     password: 'password1',
     profession: 'teacher',
     id: 1 },
  user3:
   { name: 'ramesh',
     password: 'password3',
     profession: 'clerk',
     id: 3 } 
}
Node.js API RESTful
10/30