REST API DESIGN - Obtendo um recurso através do REST com diferentes parâmetros, mas com o mesmo padrão de URL

Eu tenho uma pergunta relacionada ao design de URL REST. Eu encontrei alguns posts relevantes aqui:Representações RESTful diferentes do mesmo recurso e aqui:URL RESTful para o recurso GET por diferentes campos mas as respostas não são muito claras sobre quais são as melhores práticas e por quê. Aqui está um exemplo.

Eu tenho URLs REST para representar o recurso "usuários". Eu posso obter um usuário com um ID ou com um endereço de e-mail, mas a representação da URL permanece a mesma para ambos. Passando por muitos blogs e livros, vejo que as pessoas têm feito isso de muitas maneiras diferentes. Por exemplo

leia esta prática em um livro e em algum lugar no stackoverflow (não consigo encontrar o link novamente)

GET /users/id={id}
GET /users/email={email}

leia esta prática em muitos blogs

GET /users/{id}
GET /users/email/{email}

Params de consulta são normalmente usados ​​para filtrar os resultados dos recursos representados pelo URL, mas eu vi essa prática sendo usada também

GET /users?id={id}
GET /users?email={email}

A minha pergunta é, dentre todas essas práticas, qual seria a mais sensata para os desenvolvedores que consomem as APIs e por quê? Eu acredito que não há regras definidas em pedra quando se trata de projetos de URL REST e convenções de nomenclatura, mas eu só queria saber qual caminho devo tomar para ajudar os desenvolvedores a entender melhor as APIs.

Toda ajuda apreciada!

questionAnswers(3)

yourAnswerToTheQuestion