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

Tutorial di base NodeJS

Express.js NodeJS

Buffer & URL; NodeJS

MySql NodeJS

MongoDB NodeJS

File (FS) NodeJS

Altri NodeJS

API RESTful di Node.js

Cos'è REST?

REST, acronimo di Representational State Transfer (trasferimento dello stato espressivo), è uno stile di architettura software proposto dal dott. Roy Fielding nel suo lavoro di tesi di dottorato del 2000.

La trasformazione dello stato espressivo è un insieme di vincoli architetturali e principi. Le applicazioni o i design che soddisfano questi vincoli e principi sono RESTful. È necessario notare che REST è uno stile di progettazione e non uno standard. REST è solitamente basato su protocolli e standard esistenti e largamente diffusi come HTTP, URI, XML (un sottoinsieme del linguaggio di markup generale standard) e HTML (un'applicazione del linguaggio di markup generale standard). REST utilizza solitamente il formato dei dati JSON.

Metodo HTTP

Di seguito sono riportati i quattro metodi di base dell'architettura REST:

  • GET - Utilizzato per ottenere dati.

  • PUT - Utilizzato per aggiornare o aggiungere dati.

  • DELETE - Utilizzato per eliminare dati.

  • POST - Utilizzato per aggiungere dati.

RESTful Web Services

Un servizio web è un'applicazione piattaforma indipendente, de-coupled, autocontenuta e basata su applicazioni web programmabili, che può utilizzare lo standard XML aperto (un sottoinsieme del linguaggio di markup generale) per descrivere, pubblicare, trovare, coordinare e configurare queste applicazioni, utilizzate per sviluppare applicazioni distribuite interoperabili.

I servizi web basati su architettura REST sono RESTful.

Grazie alle sue caratteristiche leggere e al trasporto diretto dei dati tramite HTTP, il metodo RESTful dei servizi web è diventato il metodo più comune. È possibile implementare il client in vari linguaggi (ad esempio Java, Perl, Ruby, Python, PHP e Javascript [incluso Ajax]).

I servizi web RESTful possono essere acceduti tramite client automatici o rappresentanti applicazioni per gli utenti. Tuttavia, la semplicità di questo servizio permette agli utenti di interagire direttamente con esso, costruire un GET URL utilizzando il loro browser web e leggere il contenuto restituito.

Creare RESTful

Prima di tutto, crea un file di risorse JSON users.json, il contenuto è come segue:

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

Sulla base dei dati sopra elencati, abbiamo creato i seguenti API RESTful:

NumeroURIMetodo HTTPInviare il contenutoRisultato
1listUsersGETVuotoMostra l'elenco completo degli utenti
2addUserPOSTStringa JSONAggiungi un nuovo utente
3deleteUserDELETEStringa JSONEliminare l'utente
4:idGETVuotoMostra i dettagli dell'utente

Raccogliere l'elenco degli utenti

Ecco il codice che abbiamo creato per l'API RESTful listUsersusato per leggere l'elenco delle informazioni degli utenti, il codice del file server.js è come segue:

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("Esempio di applicazione, indirizzo di accesso http://%s:%s", host, port)
}

Esegui i seguenti comandi:

$ node server.js 
Esempio di applicazione, indirizzo di accesso http://0.0.0.0:8081

Accedi all'indirizzo http://127.0.0.1:8081/listUsers, i risultati sono come segue:

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

Aggiungi utente

Ecco il codice che abbiamo creato per l'API RESTful addUserusato per aggiungere nuovi dati utente, il codice del file server.js è come segue:

var express = require('express');
var app = express();
var fs = require("fs");
// Dati del nuovo utente da aggiungere
var user = {
   "user4": {
      "name": "mohit",
      "password": "password4",
      "profession": "teacher",
      "id": 4
   }
}
app.get('/addUser', function(req, res) {
   // Leggi i dati esistenti
   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("Esempio di applicazione, indirizzo di accesso http://%s:%s", host, port)
}

Esegui i seguenti comandi:

$ node server.js 
Esempio di applicazione, indirizzo di accesso http://0.0.0.0:8081

Accedi al browser e vai su http://127.0.0.1:8081/addUser, il risultato è come segue:

{ 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},
  user4:
   { name: 'mohit',
     password: 'password4',
     profession: 'teacher',
     id: 4} 
}

Mostra i dettagli dell'utente

Ecco il codice che abbiamo creato per l'API RESTful :id (ID utente)usato per leggere i dettagli dell'utente specifico, il codice del file server.js è come segue:

var express = require('express');
var app = express();
var fs = require("fs");
app.get('/:id', function(req, res) {
   // Prima di tutto leggiamo l'utente esistente
   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("Esempio di applicazione, indirizzo di accesso http://%s:%s", host, port)
}

Esegui i seguenti comandi:

$ node server.js 
Esempio di applicazione, indirizzo di accesso http://0.0.0.0:8081

Accedi al browser e vai su http://127.0.0.1:8081/2, il risultato è come segue:

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

Eliminare l'utente

Ecco il codice che abbiamo creato per l'API RESTful deleteUser, utilizzato per eliminare i dettagli dell'utente specificato, nell'esempio seguente, l'id dell'utente è 2, il codice del file server.js è come segue:

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" + 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("Esempio di applicazione, indirizzo di accesso http://%s:%s", host, port)
}

Esegui i seguenti comandi:

$ node server.js 
Esempio di applicazione, indirizzo di accesso http://0.0.0.0:8081

Accedi al browser tramite http://127.0.0.1:8081/deleteUser, i risultati sono come segue:

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