Come strutturare i servizi web REST di collisione dei percorsi con accesso ai ruoli

4

Ho un sacco di servizi web REST che il mio cliente usa. Ad esempio, per creare un user , ho

POST /users

e per modificarlo

POST /users/{id}

Il problema è che alcuni campi, come marketArea , possono essere modificati solo dai dipendenti, che avranno un ruolo EMPLOYEE . Altri campi, come name e age , sono modificabili dagli utenti finali, che avranno un ruolo USER . Poiché ho accesso a endpoint limitati dal ruolo, in questo caso c'è una collisione evidente.

Potrei facilmente aggirare il problema impostando percorsi diversi:

POST /users/{id}/public (richiede USER)

POST /users/{id}/internal (richiede IMPLOYEE)

Ma questo non mi sembra giusto. Qual è la migliore pratica in questo caso?

    
posta user3748908 30.03.2016 - 16:30
fonte

1 risposta

6

Senza saperne di più e senza aggiungere un sacco di lavoro, ti suggerirei di utilizzare un percorso e di eseguire un controllo dei permessi su POST per assicurarti che l'utente possa aggiornare i campi che hanno aggiornato. Rispondere con una 403 Forbidden se un UTENTE tenta di modificare un campo DIPENDENTE, o viceversa.

    
risposta data 30.03.2016 - 16:48
fonte

Leggi altre domande sui tag