English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial básico NodeJS

NodeJS Express.js

NodeJS Buffer & URL;

NodeJS MySql

NodeJS MongoDB

Arquivos NodeJS (FS)

Outros NodeJS

API RESTful do Node.js

O que é REST?

REST (Representational State Transfer, abreviado como REST) é um estilo de arquitetura de software proposto pelo Dr. Roy Fielding.2foi proposto em sua tese de doutorado em 000.

A transferência de estado representacional é um conjunto de restrições e princípios arquitetônicos. Aplicações ou designs que atendem a essas restrições e princípios são considerados RESTful. É importante notar que o REST é um estilo de design e não um padrão. O REST geralmente se baseia em protocolos e padrões amplamente utilizados, como HTTP, URI, XML (um subconjunto do linguagem de marcação aberta) e HTML (uma aplicação do linguagem de marcação aberta). O REST geralmente usa o formato de dados JSON.

Método HTTP

A seguir estão os quatro métodos básicos da arquitetura REST:

  • GET - Usado para obter dados.

  • PUT - Usado para atualizar ou adicionar dados.

  • DELETE - Usado para excluir dados.

  • POST - Usado para adicionar dados.

RESTful Web Services

Um serviço web é um aplicativo independente de plataforma, de baixa耦合, autônomo e baseado em web, que pode ser descrito, publicado, descoberto, coordenado e configurado usando o padrão aberto XML (um subconjunto do linguagem de marcação aberta), para desenvolver aplicativos distribuídos de interoperabilidade.

Os serviços web baseados na arquitetura REST são chamados de RESTful.

Devido às suas características leves e ao transporte direto de dados via HTTP, o método RESTful de serviços web se tornou a substituição mais comum. Clientes podem ser implementados em várias linguagens (por exemplo, Java, Perl, Ruby, Python, PHP e Javascript [inclusive do Ajax]).

Os serviços web RESTful podem ser acessados por meio de clientes automatizados ou aplicativos que representam o usuário. No entanto, a simplicidade desses serviços permite que os usuários interajam diretamente com eles, construindo um URL GET usando seus navegadores da web e lendo o conteúdo retornado.

Criar RESTful

Primeiro, criamos um arquivo de dados JSON resource users.json, conforme mostrado a seguir:

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

Baseados nos dados acima, criamos o seguinte RESTful API:

NúmeroURIMétodo HTTPEnviar conteúdoResultado
1listUsersGETVazioMostrar lista de todos os usuários
2addUserPOSTCadeia JSONAdicionar novo usuário
3deleteUserDELETECadeia JSONDeletar Usuário
4:idGETVazioMostrar detalhes do usuário

Obter lista de usuários:

Neste código, criamos uma API RESTful listUsersusado para ler a lista de informações dos usuários, o código do arquivo server.js é mostrado a seguir:

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("Exemplo de Aplicação, Endereço de Acesso http://%s:%s", host, port)
}

Em seguida, execute os seguintes comandos:

$ node server.js 
Exemplo de Aplicação, Endereço de Acesso http://0.0.0.0:8081

Acesse no navegador http://127.0.0.1:8081/listUsers, resultado conforme mostrado a seguir:

{
   "user1" : {
      "name" : "Sea",
      "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

Neste código, criamos uma API RESTful addUserusado para adicionar novos dados de usuário, o código do arquivo server.js é mostrado a seguir:

var express = require('express');
var app = express();
var fs = require("fs");
//Novos dados do usuário adicionado
var user = {
   "user4" : {
      "name" : "mohit",
      "password" : "password4",
      "profession" : "teacher",
      "id": 4
   }
}
app.get('/addUser', function (req, res) {
   // Ler dados existentes
   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("Exemplo de Aplicação, Endereço de Acesso http://%s:%s", host, port)
}

Em seguida, execute os seguintes comandos:

$ node server.js 
Exemplo de Aplicação, Endereço de Acesso http://0.0.0.0:8081

Acesse no navegador http://127.0.0.1:8081/addUser, resultado conforme mostrado a seguir:

{ usuário1:
   { nome: 'Sea',
     senha: 'password1',
     profissão: 'teacher',
     id: 1 },
  usuário2:
   { name: 'suresh',
     senha: 'password2',
     profession: 'librarian',
     id: 2 },
  usuário3:
   { nome: 'ramesh',
     senha: 'password3',
     profissão: 'clerk',
     id: 3 },
  usuário4:
   { name: 'mohit',
     senha: 'password4',
     profissão: 'teacher',
     id: 4 } 
}

Mostrar detalhes do usuário

Neste código, criamos uma API RESTful :id(ID do usuário)usado para ler os detalhes do usuário específico, o código do arquivo server.js é mostrado a seguir:

var express = require('express');
var app = express();
var fs = require("fs");
app.get('/:id', function (req, res) {
   // Primeiro, lemos o usuário existente
   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("Exemplo de Aplicação, Endereço de Acesso http://%s:%s", host, port)
}

Em seguida, execute os seguintes comandos:

$ node server.js 
Exemplo de Aplicação, Endereço de Acesso http://0.0.0.0:8081

Acesse no navegador http://127.0.0.1:8081/2Resultado conforme mostrado a seguir:

{
   "name":"suresh",
   "password":"password2",
   "profissão":"bibliotecário",
   "id":2
}

Deletar Usuário

Neste código, criamos uma API RESTful deleteUser, usado para deletar os detalhes do usuário especificado, no exemplo a seguir, o id do usuário é 2,o código do arquivo server.js é mostrado a seguir:

var express = require('express');
var app = express();
var fs = require("fs");
var id = 2;
app.get('/deleteUser', function (req, res) {
   // Primeira leitura dos usuários existentes.
   fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) {
       data = JSON.parse( data );
       delete data["user" + id];
       
       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("Exemplo de Aplicação, Endereço de Acesso http://%s:%s", host, port)
}

Em seguida, execute os seguintes comandos:

$ node server.js 
Exemplo de Aplicação, Endereço de Acesso http://0.0.0.0:8081

Acesse no navegador http://127.0.0.1:8081/deleteUser,o resultado é mostrado a seguir:

{ usuário1:
   { nome: 'Sea',
     senha: 'password1',
     profissão: 'teacher',
     id: 1 },
  usuário3:
   { nome: 'ramesh',
     senha: 'password3',
     profissão: 'clerk',
     id: 3 } 
}