Я изучил вопросы, заданные об этом, но у меня до сих пор нет окончательного ответа.
У меня есть приложение и вы хотите создать RESTful API для отображения подмножества информации. У меня есть три ресурса:
- пользователей
- Отчеты
- фото
У пользователей есть отчеты и отчеты с фотографиями. Фотографии не могут существовать вне отчетов, и отчеты не могут существовать вне пользователей.
Я разработал следующие URL-адреса для своих требований
Вход пользователя, сервер отвечает токеном, который отправляется в заголовке всех вызовов API
GET example.com/api/
Получить информацию о пользователе
GET example.com/api/users/{username}
Получить все отчеты пользователей
GET example.com/api/users/{username}/reports
Получить все фотографии отчета
GET example.com/api/users/{username}/reports/{report_id}/photos
Добавить фото
POST example.com/api/users/{username}/reports/{report_id}/photos
Удалить фотографию
DELETE example.com/api/users/{username}/reports/{report_id}/photos/{photo_id}
Изменить описание фотографии
PUT example.com/api/users/{username}/reports/{report_id}/photos/{photo_id}
Вопросы
- Можно ли добавить идентификатор ресурса в URL-адрес, т.е. ресурс /id, или добавить его как параметр запроса?
- Является ли этот метод цепочки ресурсов, то есть ресурсом /id/sub -resource/id/etc., приемлемым и хорошим, или я должен разместить все мои ресурсы на верхнем уровне и указать его позицию с параметрами запроса?