Отличия между ресурсом и сущностью
Сущность — человек, машина, пост, комментарий. Один объект.
Ресурс (набор сущностей) — GET myblog/posts/123 — пост содержит описание, комментарии, комментаторов
Формирование пути


corellationId — необходим для построения цепочки запросов в распределенных системах (микросервисная архитектура)
Заголовок (Header) — Content-Type: Json
CRUD запросы

GET

POST

PUT

DELETE

PATCH

Моё мнение
Использовать множественное число в URI (в пути) не стоит — это сбивает с толку, например /toys/1 лучше записать /toy/1 , а для получения всех игрушек /toys
Использования методов PATCH, DELETE, PUT требует от клиента наличие обработчиков, если у нас есть UI. Дело в том что просто html не поддерживает другие методы, кроме GET и POST (да, можно фреймворками менять хитро методы, но всё же)
Старайтесь сделать, как тут: Pet Store проекте
Как же делать DELETE и PUT?
DELETE делаем через POST, так мы гарантируем что объект не удалится, если наш клиент перейдет по ссылке в браузере. Все что что-то ломает, изменяет должно быть через POST, чтобы человек подумал несколько раз зачем ему это. Почитал в Postman или Swagger UI что к чему, а не дергал наш писюн (эндпоинт), чтобы оторвать яйца у нашего демо проекта на ПСИ (Приемно-Сдаточных Испытаниях).
Понимаю что может появиться соблазн использовать DELETE и PUT, но поверьте трахаться с проблемами будете потом вы же. Не надо так. Лучше рабочий говнокод, чем нерабочая красотень. Заказчику похуй какой у вас код, даже если это херня из под коня, если он работает и дает то что нужно — он закроет глаза и нос.
HTTP Статусы

Код | Описание |
200 OK | Сервер успешно обработал запрос |
3xx Redirects | Редиректы. Например для прохождения аутентификации через OAuth при просроченном (стухшем) session_id (сессионом ключе) |
400 Bad Request | Ошибка в запросе клиента |
401 Unauthorized 302 Unauthorized | Нужна авторизация для доступа к ресурсу 302 — возвращает по умолчанию Spring приложение |
403 Forbidden | Аутентификация пройдена, но нет прав для выполнения метода |
404 Not Found | Сервер не может найти данные согласно запросу 404 используют при 403 на общедоступных в интернете ресурсах, это позволяет скрыть сам факт наличия ресурса. Например мы можем так скрыть факт существования пользователя с id = 10 в URI /user/10 если пользователь не администратор, а профиль закрытый (не должен отображаться другим пользователям) |
5xx Server Errors | Ошибка по вине сервера Это самый страшный код в пятницу на проде — он значит, что надо будет работать весь вечер и выходные |
Тело ответа
