Tenemos un sistema multi-tenant con múltiples niveles de acceso diferentes, a veces incluso para el mismo usuario ya que cambian de múltiples roles. Estamos comenzando una discusión sobre pasar a una implementación RESTful de cosas. Estoy empezando a mojarme los pies con todo el RESTO.DESCANSO, almacenamiento en caché y autorización con múltiples roles de usuario
Entonces, ¿cómo hago para limitar el acceso a los registros correctos cuando acceden a un recurso, particularmente cuando se tiene en cuenta el almacenamiento en caché? Si el usuario A accede a example.com/employees
, recibiría una respuesta diferente a la del usuario B; el usuario A incluso puede recibir una respuesta diferente cuando cambia a un rol diferente. Para ayudar a facilitar el almacenamiento en caché, ¿la identificación del rol debe incorporarse de algún modo en el uri? Tal vez algo así como example.com/employees/123
(que infringe las reglas de REST), o como algún tipo de recurso subordinado como example.com/employees/role/123
(que parece una tontería, ya que role/###
se va a anexar a URIs por todas partes). Puedo ayudar, pero creo que me estoy perdiendo algo aquí.
editado mencionar multitenencia
Estoy totalmente de acuerdo. Imagine el otro escenario cuando decide implementar un motor de búsqueda que rastrea recursos. Si usa las mismas direcciones URL para diferentes niveles de acceso, el motor de búsqueda debe rastrear las mismas URL con credenciales diferentes y de alguna manera asegurarse de que los resultados estén limitados al nivel de acceso apropiado. Tener diferentes recursos para los diferentes niveles de acceso hace las cosas mucho más fáciles. –
Gracias! Tengo una pregunta de seguimiento en http://stackoverflow.com/questions/2676786/should-a-given-uri-in-a-restful-architecture-always-return-the-same-response – keithjgrant