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