English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
REST (Representational State Transfer, сокращенно REST) — это стиль архитектуры программного обеспечения, предложенный доктором Роем Филдингом в его диссертации 2000 года.
Контекстно-состояние передача — это набор архитектурных ограничений и принципов. Приложения или设计方案, удовлетворяющие этим ограничениям и принципам, являются RESTful. следует отметить, что REST — это стиль дизайна, а не стандарт. REST обычно основан на использовании HTTP, URI, XML (подмножество общего языка маркировки) и HTML (приложение общего языка маркировки). REST обычно использует формат данных JSON.
Ниже приведены четыре метода базовой архитектуры REST:
GET - для получения данных.
PUT - для обновления или добавления данных.
DELETE - для удаления данных.
POST - для добавления данных.
Web service - это платформонезависимый, низкокорелированный, автономный, основанный на программируемом веб-приложении, который можно описывать, публиковать, обнаруживать, координировать и конфигурировать с использованием открытых стандартов XML (подмножество общего языка маркировки). Они используются для разработки распределенных взаимосвязанных приложений.
Web Services на основе архитектуры REST являются RESTful.
Благодаря легковесности и способности передавать данные напрямую через HTTP, метод RESTful Web Services стал наиболее распространенным代替 методом. Клиенты могут быть реализованы на различных языках (например, Java, Perl, Ruby, Python, PHP и Javascript [включая Ajax]).
RESTful Web Services обычно можно получить через автоматического клиента или приложение, представляющее пользователя. Но удобство этой услуги позволяет пользователям напрямую взаимодействовать с ней, используя их веб-браузер для создания GET URL и чтения возвращенного содержимого.
Сначала создайте файл json данных resource users.json, содержимое будет следующим:
{ "user1": { "name": "Sea", "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 | DELETE | JSON строка | Удаление пользователя |
4 | :id | GET | Пусто | Показать详细信息 пользователя |
Ниже приведен код, с помощью которого мы создали RESTful API listUsersдля чтения списка пользователей информации, код файла 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, результат будет следующим:
{ "user1": { "name": "Sea", "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, результат будет следующим:
{ user1: { name: 'Sea', 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 :id (ID пользователя)Указано для чтения подробной информации о пользователе, код файла 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, результат будет следующим:
{ "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" + 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("Пример использования, адрес доступа: http://%s:%s", host, port) }
Далее выполните следующие команды:
$ node server.js Пример использования, адрес доступа: http://0.0.0.0:8081
В браузере перейдите по адресу http://127.0.0.1:8081/deleteUser, результат будет следующим:
{ user1: { name: 'Sea', password: 'password1', profession: 'teacher', id: 1 }, user3: { name: 'ramesh', password: 'password3', profession: 'clerk', id: 3 } }