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