API RESTful Node.js
Qu'est-ce que REST ?
REST (anglais : Representational State Transfer, appelé REST) est un style d'architecture logicielle proposé par le Dr Roy Fielding dans sa thèse de doctorat en 2000.
La transition d'état représentationnelle est un ensemble de contraintes et de principes architecturaux. Une application ou une conception qui satisfait à ces contraintes et principes est RESTful. Il est important de noter que REST est un style de conception et non un standard. REST est généralement basé sur des protocoles et des normes existants très populaires utilisant HTTP, les URI et XML (un sous-ensemble du langage de balisage généralisé standard) et HTML (une application du langage de balisage généralisé standard). REST utilise généralement le format de données JSON.
Méthodes HTTP
Voici les quatre méthodes de l'architecture de base REST :GET - utilisé pour obtenir des données.
PUT - utilisé pour ajouter des données.
DELETE - utilisé pour supprimer des données.
POST - utilisé pour mettre à jour ou ajouter des données.
Services Web RESTful
Le service Web est une application Web indépendante de la plate-forme, à faible couplage, autonome et programmable qui peut utiliser le XML ouvert. (un sous-ensemble des normes Standard Generalized Markup Language) pour décrire, publier, découvrir, coordonner et configurer ces applications pour le développement d'applications distribuées et interopérables.
Les services Web basés sur l'architecture REST sont RESTful.
L'approche RESTful des services Web est devenue l'alternative la plus courante en raison de sa nature légère et de sa capacité à transférer des données directement via HTTP. Les clients peuvent être implémentés à l'aide de divers langages, tels que Javascript, Perl, Ruby, Python, PHP et Javascript [y compris Ajax].
Les services Web RESTful sont généralement accessibles via des clients ou des applications automatisés au nom des utilisateurs. Cependant, la simplicité de ce service permet aux utilisateurs d'interagir directement avec lui, en utilisant leur navigateur Web pour construire une URL GET et lire le contenu renvoyé.
Pour plus d'introduction, vous pouvez consulter : Explication détaillée de l'architecture RESTful
Création de RESTful
Tout d'abord, créez un fichier de ressources de données JSON users.json , le contenu est le suivant :
{ "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 } }
Sur la base des données ci-dessus, nous créons l'API RESTful suivante :
序号 | URI | HTTP 方法 | 发送内容 | 结果 |
---|---|---|---|---|
1 | listUsers | GET | 空 | 显示所有用户列表 |
2 | addUser | POST | JSON 字符串 | 添加新用户 |
3 | deleteUser | DELETE | JSON 字符串 | 删除用户 |
4 | :id | GET | 空 | 显示用户详细信息 |
Obtenir la liste des utilisateurs :
Avec le code suivant, nous avons créé une API RESTful listUsers, qui est utilisée pour lire la liste d'informations de l'utilisateur. Le code du fichier server.js est le suivant. suit :
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) })
Exécutez ensuite la commande suivante :
$ node server.js 应用实例,访问地址为 http://0.0.0.0:8081
Visitez http://127.0.0.1:8081/listUsers dans le navigateur, le résultat est le suivant :
{ "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 } }
Ajouter un utilisateur
Avec le code suivant, nous avons créé une API RESTful addUser, qui est utilisée pour ajouter de nouvelles données utilisateur. Le code du fichier server.js est le suivant :
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) }).
Exécutez ensuite la commande suivante :
$ node server.js 应用实例,访问地址为 http://0.0.0.0:8081
Accédez à http://127.0.0.1:8081/addUser dans le navigateur, le résultat est le suivant :
{ 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 } }
Affichez les détails de l'utilisateur
Le code suivant, nous créons L'API RESTful :id (user id) est utilisé pour lire les informations détaillées de l'utilisateur spécifié. Le code du fichier server.js est le suivant :
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) })
Ensuite, exécutez la commande suivante :
$ node server.js 应用实例,访问地址为 http://0.0.0.0:8081
Accédez à http://127.0.0.1:8081/2 dans le navigateur, le résultat est le suivant :
{ "name":"suresh", "password":"password2", "profession":"librarian", "id":2 }
Supprimer l'utilisateur
Avec le code suivant, nous créons une API RESTful deleteUser est utilisée pour supprimer les détails de l'utilisateur spécifié. Dans l'exemple suivant, l'identifiant de l'utilisateur est 2 et le fichier server.js. le code est le suivant :
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) })
Ensuite, exécutez la commande suivante :
$ node server.js 应用实例,访问地址为 http://0.0.0.0:8081
Accédez à http://127.0.0.1:8081/deleteUser dans le navigateur, le résultat est le suivant :
{ user1: { name: 'mahesh', password: 'password1', profession: 'teacher', id: 1 }, user3: { name: 'ramesh', password: 'password3', profession: 'clerk', id: 3 } }