DISEÑO DE LA API REST: obtener un recurso a través de REST con diferentes parámetros pero con el mismo patrón de URL
Tengo una pregunta relacionada con el diseño de url REST. He encontrado algunos mensajes relevantes aquí:Diferentes representaciones REST del mismo recurso. y aquí:URL RESTful para obtener recursos por diferentes campos pero las respuestas no son muy claras sobre cuáles son las mejores prácticas y por qué. Aquí hay un ejemplo.
Tengo URL REST para representar el recurso "usuarios". Puedo OBTENER un usuario con una identificación o con una dirección de correo electrónico, pero la representación de la URL sigue siendo la misma para ambos. Al leer muchos blogs y libros, veo que la gente ha estado haciendo esto de muchas maneras diferentes. Por ejemplo
lea esta práctica en un libro y en algún lugar de stackoverflow (parece que no puedo encontrar el enlace de nuevo)
GET /users/id={id}
GET /users/email={email}
Lee esta práctica en muchos blogs.
GET /users/{id}
GET /users/email/{email}
Los parámetros de consulta se usan normalmente para filtrar los resultados de los recursos representados por la url, pero también he visto esta práctica como utilizada.
GET /users?id={id}
GET /users?email={email}
Mi pregunta es, de todas estas prácticas, ¿cuál sería la más sensata para los desarrolladores que consumen las API y por qué? Creo que no hay reglas establecidas en piedra en lo que respecta a los diseños de URL REST y las convenciones de nombres, pero solo quería saber qué ruta debería tomar para ayudar a los desarrolladores a comprender mejor las API.
Toda la ayuda apreciada!