Каков наилучший способ представления ресурса списка, когда список может быть «принадлежащим» разными ресурсами?Как создать URI для ресурса, который занимает разные позиции в иерархии?
Примите типичный пример блога.
У вас есть сообщения, комментарии и пользователи. Сообщение имеет много комментариев, а Пользователь является автором многих комментариев.
Возможно, вы захотите получить список комментариев в контексте данного Пользователя (например, историю комментариев пользователя), для данной Почты (например, все комментарии к этому сообщению) или, может быть, только все комментарии, период (хотя это не очень вероятно).
Вы можете иметь три различных URIs:
/user/user_id/comments
/post/post_id/comments
/comments
ли это? Я понимаю, что URI должны быть идемпотентными. Является ли более «RESTful» иметь один URL-адрес: /комментарии
и параметры фильтрации прохода? например
/comments?user=user_id
/comments?post=post_id
Я предполагаю, что это второй метод означает, что вы можете также фильтровать пользователем и пост с
/comments?user=user_id&post=post_id
Но мне нравится, как первый пример раскрывает иерархический контекст.
Какая у вас лучшая практика?