Подробное объяснение спокойного стиля

Java EE

1. Концепция

Архитектура RESTful — одна из самых популярных архитектур программного обеспечения в Интернете. Он имеет четкую структуру, соответствует стандартам, прост для понимания и легко расширяется., поэтому его используют все больше и больше веб-сайтов.

Слово ОТДЫХ, этоRoy Thomas Fieldingпредложенный в его докторской диссертации 2000 г. Филдинг назвал свои архитектурные принципы программного обеспечения для Интернета под названиемREST,СейчасRepresentational State Transferаббревиатура от. который"Переход состояния уровня представления".еслиАрхитектура, соответствующая принципам REST, называется архитектурой RESTful.

2. Понимание

RESTful архитектура,Representational State Transfer:Переход состояния уровня представления

1. Ресурсы: Каждому ресурсу соответствует определенный URI (унифицированный указатель ресурса), а URI — это адрес или уникальный идентификатор каждого ресурса;

2. Представительство:Форма, в которой конкретно представлены «ресурсы», называется «слоем представления»., URI представляет только расположение «ресурса». Его конкретная форма должна использоваться в информации заголовка HTTP-запроса.AcceptиContent-TypeСпецификация поля, эти два поля являются описанием «уровня представления».

3. Передача состояния: Если клиент хочет управлять сервером, он должен каким-то образом выполнить «переход состояния» на стороне сервера. И это преобразование основано на уровне представления, так что это «преобразование состояния уровня представления». Средство, используемое клиентом, — это четыре глагола, которые представляют режим работы в протоколе HTTP:ПОЛУЧИТЬ, ПОСТАВИТЬ, ПОСТАВИТЬ, УДАЛИТЬ. Они соответствуют четырем основным операциям:GET используется для получения ресурсов, POST используется для создания новых ресурсов (а также может использоваться для обновления ресурсов), PUT используется для обновления ресурсов, а DELETE используется для удаления ресурсов.

Суммировать:

  • Каждый URI представляет ресурс;
  • Между клиентом и сервером проходит какой-то уровень представления этого ресурса;
  • Клиент работает с ресурсами на стороне сервера с помощью четырех HTTP-команд для достижения «преобразования состояния уровня представления».

3. HTTP-глаголы

Для определенных типов операций над ресурсами, представленных HTTP-глаголами. Существует пять часто используемых глаголов HTTP (соответствующие команды SQL указаны в скобках).

ПОЛУЧИТЬ (ВЫБРАТЬ): получить ресурсы с сервера.
POST (CREATE): Создайте новый ресурс на сервере.
PUT (UPDATE): обновить ресурс на сервере (клиент предоставляет полный ресурс после изменения).
ИСПРАВЛЕНИЕ (ОБНОВЛЕНИЕ): Обновите ресурс на сервере (клиент предоставляет измененные свойства).
УДАЛИТЬ (DELETE): Удаляет ресурс с сервера.

Есть также два менее часто используемых HTTP-глагола.

HEAD: Получить метаданные ресурса.
ПАРАМЕТРЫ: Получить информацию о том, какие свойства ресурса могут быть изменены клиентом.

Ниже приведены некоторые примеры.

GET /zoos: список всех зоопарков
POST /zoos: создать новый зоопарк
GET /zoos/ID: получить информацию об указанном зоопарке.
PUT /zoos/ID: обновить информацию об указанном зоопарке (предоставить всю информацию о зоопарке).
PATCH /zoos/ID: обновить информацию об указанном зоопарке (предоставить некоторую информацию о зоопарке).
УДАЛИТЬ /zoos/ID: удалить зоопарк
GET /zoos/ID/animals: список всех животных в заданном зоопарке.
УДАЛИТЬ /zoos/ID/animals/ID: удалить указанное животное в указанном зоопарке

4. Вернуть результат

Для различных операций результаты, возвращаемые сервером пользователю, должны соответствовать следующим спецификациям.

GET/коллекция: возвращает список (массив) объектов ресурсов.
GET/коллекция/ресурс: возвращает один объект ресурса
POST/коллекция: возвращает вновь сгенерированный ресурсный объект
PUT/коллекция/ресурс: возвращает полный объект ресурса
ИСПРАВЛЕНИЕ /коллекция/ресурс: возвращает полный объект ресурса
УДАЛИТЬ /коллекция/ресурс: возвращает пустой документ

5. Распространенные ошибки

1. URI содержат глаголы

POST /accounts/1/transfer/500/to/2
Замените глагол перенос на существительное транзакция

2. URI содержит версию

www.example.com/app/1.0/foo
www.example.com/app/1.1/foo
www.example.com/app/2.0/foo

Поскольку разные версии можно понимать как разные представления одного и того же ресурса, следует использовать один и тот же URI. Номер версии можно узнать в поле Accept заголовка HTTP-запроса.

Принять: vnd.example-com.foo+json, версия=1.0
Принять: vnd.example-com.foo+json, версия=1.1
Принять: vnd.example-com.foo+json, версия=2.0

Ссылка на ссылку:
Руководство по проектированию RESTful API
Подробное объяснение спокойного стиля