Latest web development tutorials

Node.js RESTful API

Что такое REST?

Это ОСТАЛЬНЫЕ Representational State Transfer (на английском языке: Representational State Transfer, называется REST), представленный доктором Рой Филдинг в своей докторской диссертации в 2000 году в стиле архитектуры программного обеспечения.

Представительный State Transfer представляет собой набор архитектурных ограничений и принципов. Встреча этих ограничений и принципы дизайна или приложение RESTful. Обратите внимание, что, REST это стиль, а не стандарт. REST обычно основывается на использовании HTTP, URI и XML (подмножество стандартного обобщенного языка разметки) и в соответствии с HTML (приложение, в соответствии со стандартной Generalized Markup Language) этих существующих распространенных протоколов и стандартов. REST обычно используют формат данных в формате JSON.

метод HTTP

Следующие четыре основных метода REST архитектуры:

  • GET - используется для получения данных.

  • PUT - используется для добавления данных.

  • DELETE - для удаления данных.

  • POST - используется для обновления или добавления данных.


RESTful Web Services

Веб-служба является независимой от платформы, слабосвязанные, автономные, программируемые веб-приложения, вы можете использовать Open XML (подмножество Стандартный обобщенный язык разметки в соответствии с) стандарты для описания, публиковать, находить, координация и настроить эти приложения для разработки функционально совместимых распределенных приложений.

REST на основе архитектуры Web-сервисов, что является RESTful.

Из-за легкого и прямой передачи через HTTP данные по характеристикам, RESTful метод веб-службы стала наиболее распространенной альтернативой. Вы можете использовать различные языки (например, Java-программы, Perl, Ruby, Python, PHP и Javascript [включая Ajax]) для достижения клиента.

RESTful веб-сервисов обычно можно получить доступ с помощью автоматического клиента или от имени приложения пользователя. Тем не менее, эта простота позволяет пользователям услуг непосредственно взаимодействовать с ними с помощью своего веб-браузера, чтобы построить GET URL и читать возвращается.

Другие отчеты, вы можете просмотреть: RESTful архитектуры Комментарии


Создание RESTful

Во-первых, создать файл данных в формате JSON ресурс users.json, звучит следующим образом:

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

На основании приведенных выше данных, мы создали следующий RESTful API:

Нет. URI метод HTTP Отправить Содержание результат
1 Listusers GET пустой Отображает список всех пользователей
2 AddUser POST строка в формате JSON Добавление нового пользователя
3 deleteUser УДАЛЕНИЕ строка в формате JSON Удалить пользователя
4 : Id GET пустой Моя информация

Получить список пользователей:

Следующий код, мы создаемRESTful Listusers API, для чтения списка пользовательской информации, server.js код файла выглядит следующим образом :

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)

})

Затем выполните следующую команду:

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

Доступ в http://127.0.0.1:8081/listUsers~~pobj браузера, результаты выглядят следующим образом:

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

Добавить пользователя

Следующий код, мы создаемRESTful API AddUser, используемый для добавления новых пользовательских данных, server.js код файла выглядит следующим образом :

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)

})

Затем выполните следующую команду:

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

Доступ в браузере http://127.0.0.1:8081/addUser~~pobj, получены следующие результаты:

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

Моя информация

Следующий код, мы создаемRESTful API: идентификатор (идентификатор пользователя),указать реквизиты для пользователя , чтобы читать, server.js код файла выглядит следующим образом :

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)

})

Затем выполните следующую команду:

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

Доступ в браузере http://127.0.0.1:8081/2~~pobj, получены следующие результаты:

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

Удалить пользователя

Следующий код, мы создаемRESTful API deleteUser, подробная информация для указанного пользователя , чтобы удалить следующий пример, идентификатор пользователя 2, server.js код файла выглядит следующим образом :

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)

})

Затем выполните следующую команду:

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

Доступ в браузере http://127.0.0.1:8081/deleteUser~~pobj, получены следующие результаты:

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