Задать вопрос
@maitre

Насколько правильно я пониманию архитектуру REST?

Правильно ли я понимаю, что в REST:
Ресурс - это данные, например, сообщение, которое пользователь отправил в чат, оно хранится в БД на сервере, а передается на сервер и обратно клиенту через Представление.
Представление - технология/способ передачи ресурса (выше упомянутого сообщения) между клиентом и сервером, например JSON, XML.
URI - уникальный идентификатор ресурса, например URI /messages/281 - указывает на 281 сообщение в БД
Что такое состояние? Если объяснять на примере сообщения в чате, это текущее состояние сообщения (текст сообщения)? Т.е., состояние сообщения хранится в БД, а если я хочу изменить состояние уже существующего сообщения, я посылаю PUT запрос, в теле которого передаю новое состояние сообщения (новые измененный текст сообщения)?

По стандарту:
# В POST и PUT нужно передавать тело запроса (если оно есть) и нужно обязательно использовать парсер для раскодирования запроса?
# GET и DELETE не нужно кодировать, эти методы не должны содержать тело запроса и все данные нужно передавать в URI запроса, например /messages/281 с методом DELETE должен удалять сообщение №281?
  • Вопрос задан
  • 324 просмотра
Подписаться 2 Средний Комментировать
Решения вопроса 1
@Urukhayy
По стандарту:
# Передаёте тело, если это требуется. Как правило, для таких запросов оно требуется всегда. Парсер использовать в зависимости от принимающей стороны. В большинстве случаев всё есть в бибилотеках и фреймворках.
# С точки зрения "дружелюбного" API, да. Эти запросы должны содержать базовый путь объекта, но для уточнения можно использовать query, что ставится после знака вопроса в строке запроса. К примеру, можно составить такой запрос: GET /dogs, а если нужны только собаки черного цвета: GET /dogs?color=black
Да, DELETE должен удалить сообщение с идентификатором 281. Не обязательно id, можно указать так: DELETE /streets/Iddlewood

https://habrahabr.ru/post/181988/
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы