Latest web development tutorials

Node.js API RESTful

Qual è il riposo?

Tale trasferimento REST (Representational State inglese: Representational State Transfer, chiamato REST) ​​presentato dal Dr. Roy Fielding nella sua tesi di dottorato nel 2000, ad uno stile di architettura software.

Representational State Transfer è un insieme di vincoli architettonici e principi. Soddisfare questi vincoli e principi di progettazione o di applicazione è RESTful. Si noti che, REST è uno stile piuttosto che la standard. REST è di solito basato sull'uso di HTTP, URI, e XML (un sottoinsieme della Standard Generalized Markup Language sotto) e HTML (una domanda ai sensi della Standard Generalized Markup Language) questi protocolli diffusi esistenti e standard. REST utilizzano in genere formato dati JSON.

metodo HTTP

I seguenti quattro metodi di base REST architettura:

  • GET - utilizzato per recuperare i dati.

  • PUT - utilizzato per aggiungere dati.

  • Elimina - per eliminare i dati.

  • POST - utilizzato per aggiornare o aggiungere dati.


Servizi Web RESTful

servizio Web è a, self-contained, applicazioni web-based programmabili debolmente accoppiati indipendenti dalla piattaforma, è possibile utilizzare Open XML (un sottoinsieme del Standard Generalized Markup Language sotto) standard per descrivere, pubblicare, scoprire, coordinamento e configurare queste applicazioni per lo sviluppo di applicazioni distribuite interoperabili.

Web Services architettura REST-based che è riposante.

A causa del trasferimento leggero e diretto tramite HTTP i dati caratteristici, RESTful metodo di servizio Web è diventato l'alternativa più comune. È possibile utilizzare una varietà di lingue (come ad esempio i programmi Java, Perl, Ruby, Python, PHP e Javascript [tra cui Ajax]) per raggiungere il cliente.

I servizi Web RESTful di solito può accedere attraverso automatico del client o per conto della domanda dell'utente. Tuttavia, questa semplicità permette agli utenti di servizi di interagire direttamente con loro tramite il browser Web per costruire un URL GET e leggere i rendimenti.

Altri rapporti, è possibile visualizzare: RESTful architettura Commenti


Creazione di RESTful

In primo luogo, creare un file di risorse di dati JSON users.json, è formulato come segue:

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

Sulla base dei dati di cui sopra, abbiamo creato la seguente API RESTful:

No. URI metodo HTTP Invia contenuti risultato
1 ListUsers GET vuoto Consente di visualizzare un elenco di tutti gli utenti
2 addUser POST stringa JSON Aggiungere un nuovo utente
3 deleteUser DELETE stringa JSON Elimina utente
4 : Id GET vuoto dettagli utente di visualizzazione

Ottenere un elenco di utenti:

Il codice seguente, creiamo unRESTful API ListUsers, per la lettura di informazioni elenco di utenti, codice del file server.js è il seguente:

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)

})

Quindi eseguire il seguente comando:

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

L'accesso nei http://127.0.0.1:8081/listUsers del browser, i risultati sono i seguenti:

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

Aggiungi utente

Il codice seguente, creiamo una addUser APIRESTful, utilizzato per aggiungere nuovi dati utente, codice del file server.js è il seguente:

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)

})

Quindi eseguire il seguente comando:

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

Access nella http://127.0.0.1:8081/addUser browser risultati sono i seguenti:

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

dettagli utente di visualizzazione

Il codice seguente, creiamo una APIRESTful: id (id utente),specificare i dettagli per l'utente di leggere, codice del file server.js è il seguente:

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)

})

Quindi eseguire il seguente comando:

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

Access nella http://127.0.0.1:8081/2 browser risultati sono i seguenti:

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

Elimina utente

Il codice seguente, creiamo una deleteUser APIRESTful, informazioni dettagliate per l'utente specificato per eliminare il seguente esempio, l'utente id è 2, codice del file server.js è il seguente:

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)

})

Quindi eseguire il seguente comando:

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

Access nella http://127.0.0.1:8081/deleteUser browser risultati sono i seguenti:

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