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!

Respuestas a la pregunta(3)

Su respuesta a la pregunta