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