REST API DESIGN - получение ресурса через REST с разными параметрами, но с одинаковым шаблоном URL
У меня есть вопрос, связанный с дизайном URL REST. Я нашел несколько соответствующих постов здесь:Различные RESTful представления одного и того же ресурса и здесь:URL RESTful для получения ресурса по разным полям но ответы не совсем ясны о том, что такое лучшие практики и почему. Вот пример.
У меня есть REST URL для представления ресурса «пользователи». Я могу получить пользователя с идентификатором или с адресом электронной почты, но представление URL остается одинаковым для обоих. Просматривая множество блогов и книг, я вижу, что люди делают это по-разному. Например
прочитайте эту практику в книге и где-нибудь о stackoverflow (кажется, я не могу найти ссылку снова)
GET /users/id={id}
GET /users/email={email}
прочитайте эту практику на многих блогах
GET /users/{id}
GET /users/email/{email}
Параметры запроса обычно используются для фильтрации результатов ресурсов, представленных URL, но я видел, что эта практика также используется
GET /users?id={id}
GET /users?email={email}
Мой вопрос, из всех этих методов, какой из них наиболее целесообразен для разработчиков, использующих API, и почему? Я полагаю, что нет никаких правил, установленных в камне, когда речь идет о REST-дизайне URL-адресов и соглашениях об именах, но я просто хотел узнать, какой путь мне следует выбрать, чтобы помочь разработчикам лучше понять API.
Вся помощь приветствуется!