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.

Вся помощь приветствуется!

Ответы на вопрос(3)

Ваш ответ на вопрос