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

Tutoriel de base NodeJS

NodeJS Express.js

NodeJS Buffer & URL;

NodeJS MySql

NodeJS MongoDB

NodeJS Fichier (FS)

Autres NodeJS

API RESTful de Node.js

Qu'est-ce que REST ?

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.

méthode HTTP

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.

RESTful Web Services

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é.

créer RESTful

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éroURIméthode HTTPenvoyer le contenurésultat
1listUsersGETvideafficher la liste complète des utilisateurs
2addUserPOSTchaîne JSONajouter un nouveau utilisateur
3deleteUserDELETEchaîne JSONSuppression utilisateur
4:idGETvideafficher les détails de l'utilisateur

obtenir la liste des utilisateurs :

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

ajouter un utilisateur

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

afficher les détails de l'utilisateur

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
}

Suppression utilisateur

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