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!