Actualmente estamos diseñando una API REST interna. tenemos el siguiente caso de uso:REST Diseño de API: consulta de datos de correo electrónico: ¿qué veneno elegir?
- un usuario (109) quiere leer un mensaje que ha enviado a otro usuario (110)
- el usuario de lectura (109) que se conoce a la aplicación a través de su ficha credenciales que recibió después de la autenticación (mientras se hace la petición GET)
- asumimos en este ejemplo el usuario 109 era el remitente y 110 del receptor
para resumir desde la perspectiva de los usuarios "me dan el correo que i (109) han enviado a 110 "
los siguientes URI vino a la mente, pero no podemos decidir cuál tomar:
a) GET http://localhost:9099/api/mails/109?receiverUserId=110
b) GET http://localhost:9099/api/mails?senderUserId=109&receiverUserId=110
c) GET http://localhost:9099/api/mails?receiverUserId=110
d) GET http://localhost:9099/api/mails/me/to/110 (when logged in as 109 via token credentials we know that "me" is 109)
f) GET http://localhost:9099/api/mails/109/to/110 (explicit request, e.g. for admins … has to be guarded against illegal access)
todos los enlaces son "sensibles al contexto" que está enviando uno de los enlaces al receptor (110) se producir resultados diferentes al ejecutar la solicitud GET.
me gustaría saber su opinión sobre qué URL utilizar.
cualquier ayuda muy apreciada.
aplausos Marcel
Solo una observación: (b) y (d) son idénticos. – ArjunShankar
ah, lo siento, tienes razón ;-) – Marcel
Yo voto por c. No veo el sentido de indicar al usuario lector, como se lo conoce. (excepto para el almacenamiento en caché, sin embargo) – njzk2