Ecco un esempio:
GET /posts
POST /posts
GET /posts/{post_id}
PUT /posts/{post_id}
Questa API viene utilizzata da SUPER_ADMIN e CONTENT_WRITERS. Funziona alla grande. Se l'utente ha effettuato l'accesso come SuperAdmin, vede tutti i post, e se l'utente è loggato come ContentWriter, vede solo il suo post.
Ma ora viene aggiunto il requisito, in cui SuperAdmin dovrebbe essere in grado di eseguire operazioni CRUD per conto di qualsiasi ContentWriter.
Ho aggiunto queste API per questo:
GET /user/{user_id}/posts
POST /user/{user_id}/posts
GET /user/{user_id}/posts/{post_id}
PUT /user/{user_id}/posts/{post_id}
Funziona bene anche lui. Ma il problema qui è, ora ci sono troppe API / controller da mantenere . Anche se i controller usano lo stesso servizio per questo.
La mia domanda è, sto andando nella giusta direzione? O ci sono altre buone pratiche per questo?
UPDATE 1
L'idea qui è in qualche modo simile a Impersonation .