Latest web development tutorials

Node.js API RESTful

Qu'est-ce que REST?

Ce transfert REST (Representational State Anglais: Representational State Transfer, appelé REST) ​​présenté par le Dr Roy Fielding dans sa thèse de doctorat en 2000 à un style d'architecture logicielle.

Representational State Transfer est un ensemble de contraintes et principes architecturaux. Rencontrer ces contraintes et principes de la conception ou de l'application est RESTful. Notez que, REST est un style plutôt que la norme. REST est généralement basée sur l'utilisation de HTTP, URI et XML (un sous-ensemble de la Standard Generalized Markup Language sous) et HTML (une demande en vertu du Standard Generalized Markup Language) ces protocoles et normes généralisées existantes. REST utilisent généralement le format de données JSON.

Méthode HTTP

Les quatre méthodes de base REST architecture suivante:

  • GET - utilisé pour récupérer des données.

  • PUT - utilisé pour ajouter des données.

  • DELETE - pour supprimer les données.

  • POST - utilisé pour mettre à jour ou ajouter des données.


Services Web RESTful

service Web est un,,, applications basées sur le Web plate-forme indépendante faiblement couplés autonomes programmables, vous pouvez utiliser Open XML (un sous-ensemble de la Standard Generalized Markup Language sous) les normes pour décrire, publier, découvrir, coordination et configurer ces applications pour le développement d'applications distribuées interopérables.

Services Web architecture basée sur REST qui est RESTful.

En raison du transfert léger et direct via HTTP données caractéristiques, méthode de service Web RESTful est devenu l'alternative la plus courante. Vous pouvez utiliser une variété de langues (tels que les programmes Java, Perl, Ruby, Python, PHP et Javascript [y compris Ajax]) pour atteindre le client.

Les services Web RESTful peuvent généralement être accessibles par le biais automatique des clients ou pour le compte de la demande de l'utilisateur. Cependant, cette simplicité permet aux utilisateurs de services d'interagir directement avec eux en utilisant leur navigateur Web pour construire une URL GET et lire les retours.

Plus de rapports, vous pouvez consulter: RESTful Architecture Commentaires


Création d'RESTful

Tout d'abord, créez un users.json json fichier de ressources de données, se lit comme suit:

{
   "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 avons créé l'API RESTful suivante:

Non. URI Méthode HTTP Envoyer contenu résultat
1 listUsers GET vide Affiche une liste de tous les utilisateurs
2 addUser POST chaîne JSON Ajouter un nouvel utilisateur
3 deleteUser EFFACER chaîne JSON Supprimer l'utilisateur
4 : Id GET vide détails de l'utilisateur d'affichage

Obtenez une liste d'utilisateurs:

Le code suivant, nous créons unRESTful listUsers API, pour la lecture des informations de la liste des utilisateurs, le code de fichier server.js est la suivante:

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)

})

Ensuite, exécutez la commande suivante:

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

L'accès aux http://127.0.0.1:8081/listUsers du navigateur, les résultats sont les suivants:

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

Le code suivant, nous créons un addUser APIRESTful, utilisé pour ajouter de nouvelles données de l' utilisateur, le code de fichier server.js est la suivante:

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)

})

Ensuite, exécutez la commande suivante:

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

L'accès au http://127.0.0.1:8081/addUser du navigateur, les résultats sont les suivants:

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

détails de l'utilisateur d'affichage

Le code suivant, nous créons une APIRESTful: id (ID utilisateur),préciser les détails pour l'utilisateur de lire, le code de fichier server.js est la suivante:

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

L'accès au http://127.0.0.1:8081/2 du navigateur, les résultats sont les suivants:

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

Supprimer l'utilisateur

Le code suivant, nous créons une APIRESTful deleteUser, des informations détaillées pour l'utilisateur spécifié pour supprimer l'exemple suivant, l'ID utilisateur est 2, le code de fichier server.js est la suivante:

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

L'accès au http://127.0.0.1:8081/deleteUser du navigateur, les résultats sont les suivants:

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