English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
REST, ou transfert d'état exprimé (en anglais : Representational State Transfer, abrégé en REST), est un style d'architecture logicielle proposé par le docteur Roy Fielding2Dans sa thèse de doctorat en 0000, Roy Fielding a proposé ce style d'architecture logicielle.
Le transfert d'état exprimé est un ensemble de contraintes architecturales et de principes. Les applications ou les conceptions qui satisfont à ces contraintes et principes sont dites RESTful. Il convient de noter que REST est un style de conception et non une norme. REST utilise généralement HTTP, URI, XML (sous-ensemble du langage de balisage généralisé) et HTML (application du langage de balisage généralisé) ces protocoles et normes largement utilisés. REST utilise généralement le format de données JSON.
Voici les quatre méthodes de base de l'architecture REST :
GET - Utilisé pour obtenir des données.
PUT - Utilisé pour mettre à jour ou ajouter des données.
DELETE - Utilisé pour supprimer des données.
POST - Utilisé pour ajouter des données.
Un service Web est une application indépendante de la plateforme, dépourvue de couplage, auto-contenue et basée sur des applications Web programmables, qui peut utiliser les standards ouverts XML (sous-ensemble du langage de balisage généralisé) pour décrire, publier, découvrir, coordonner et configurer ces applications, utilisées pour développer des applications distribuées et interopérables.
Les services Web basés sur l'architecture REST sont appelés RESTful.
En raison de ses caractéristiques légères et de la transmission directe des données via HTTP, la méthode RESTful des services Web est devenue la méthode de remplacement la plus courante. Les clients peuvent être implémentés en utilisant divers langages (comme Java, Perl, Ruby, Python, PHP et Javascript [y compris Ajax]).
Les services Web RESTful peuvent généralement être accédés par des clients automatiques ou des applications représentant les utilisateurs. Cependant, la facilité de ces services permet aux utilisateurs de s'y connecter directement, de construire une URL GET avec leur navigateur Web et de lire le contenu retourné.
d'abord, créons un fichier de données JSON resource users.json, avec le contenu suivant :
{ "user"1" : { "name" : "Sea", "password" : "mot de passe",1", "profession" : "enseignant", "id": 1 }, "user"2" : { "name" : "suresh", "password" : "mot de passe",2", "profession" : "bibliothécaire", "id": 2 }, "user"3" : { "name" : "ramesh", "password" : "mot de passe",3", "profession" : "clerc", "id": 3 } }
basé sur les données ci-dessus, nous créons les API RESTful suivantes :
numéro | URI | méthode HTTP | envoyer le contenu | résultat |
---|---|---|---|---|
1 | listUsers | GET | vide | afficher la liste complète des utilisateurs |
2 | addUser | POST | chaîne JSON | ajouter un nouveau utilisateur |
3 | deleteUser | DELETE | chaîne JSON | Suppression utilisateur |
4 | :id | GET | vide | afficher les détails de l'utilisateur |
Dans le code suivant, nous avons créé une API RESTful listUsersutilisé pour lire la liste des informations des utilisateurs, le code du fichier server.js est indiqué ci-dessous :
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("Exemples d'applications, adresse d'accès: http://%s:%s", host, port) }
Exécutez les commandes suivantes:
$ node server.js Exemples d'applications, adresse d'accès: http://0.0.0.0:8081
Accédez à http: //127.0.0.1:8081/listUsers, voici le résultat ci-dessous :
{ "user"1" : { "name" : "Sea", "password" : "mot de passe",1", "profession" : "enseignant", "id": 1 }, "user"2" : { "name" : "suresh", "password" : "mot de passe",2", "profession" : "bibliothécaire", "id": 2 }, "user"3" : { "name" : "ramesh", "password" : "mot de passe",3", "profession" : "clerc", "id": 3 } }
Dans le code suivant, nous avons créé une API RESTful addUserutilisé pour ajouter de nouvelles données utilisateur, le code du fichier server.js est indiqué ci-dessous :
var express = require('express'); var app = express(); var fs = require("fs"); //données du nouveau utilisateur ajouté var user = { "user"4" : { "name" : "mohit", "password" : "mot de passe",4", "profession" : "enseignant", "id": 4 } } app.get('/addUser', function(req, res) { // lire les données existantes fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) { data = JSON.parse( data ); data["user"4"] = user["user"4"]; 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("Exemples d'applications, adresse d'accès: http://%s:%s", host, port) }
Exécutez les commandes suivantes:
$ node server.js Exemples d'applications, adresse d'accès: http://0.0.0.0:8081
Accédez à http: //127.0.0.1:8081/addUser, voici le résultat ci-dessous :
{ user1: { name: 'Sea', password: 'password1', profession: 'teacher', id: 1 }, user2: { name: 'suresh', password: 'password2', profession: 'bibliothécaire', id: 2 }, user3: { name: 'ramesh', password: 'password3', profession: 'clerk', id: 3 }, user4: { name: 'mohit', password: 'password4', profession: 'teacher', id: 4 } }
Dans le code suivant, nous avons créé une API RESTful :id (identifiant utilisateur)utilisé pour lire les détails d'un utilisateur spécifique, le code du fichier server.js est indiqué ci-dessous :
var express = require('express'); var app = express(); var fs = require("fs"); app.get('/:id', function(req, res) { // d'abord nous lisons les utilisateurs existants 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("Exemples d'applications, adresse d'accès: http://%s:%s", host, port) }
Exécutez les commandes suivantes:
$ node server.js Exemples d'applications, adresse d'accès: http://0.0.0.0:8081
Accédez à http: //127.0.0.1:8081/2voici le résultat ci-dessous :
{ "name":"suresh", "password":"mot de passe"2", "profession":"bibliothécaire", "id":2 }
Dans le code suivant, nous avons créé une API RESTful deleteUser, utilisé pour supprimer les détails d'utilisateur spécifique, dans l'exemple suivant, l'ID utilisateur est 2,le code du fichier server.js est présenté ci-dessous:
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("Exemples d'applications, adresse d'accès: http://%s:%s", host, port) }
Exécutez les commandes suivantes:
$ node server.js Exemples d'applications, adresse d'accès: http://0.0.0.0:8081
Accédez à http: //127.0.0.1:8081/deleteUser,résultat suivant:
{ user1: { name: 'Sea', password: 'password1', profession: 'teacher', id: 1 }, user3: { name: 'ramesh', password: 'password3', profession: 'clerk', id: 3 } }