REST api design: come gestire più tipi di risorse nell'URL?

2

Diciamo che ho un'organizzazione e utenti all'interno di quella organizzazione. Per ottenere un utente in un'organizzazione particolare quale dovrebbe essere l'URL di richiesta GET dalle opzioni di sotto?

1. /api/organization/:orgId/users/:userId
2. /api/users/:userId?organizationId=orgId

Qualsiasi altro suggerimento è benvenuto.

    
posta vinesh 04.04.2016 - 22:56
fonte

1 risposta

7

È meglio mappare su quale semantica si sta tentando di comunicare.

/api/organization/:orgId/users/:userId

Questo mi sembra che ci sia un gruppo di organizzazioni, e per ogni organizzazione, ci sono un sacco di utenti e tu vuoi ottenere informazioni per quell'utente.

/api/users/:userId?organizationId=orgId

Questo mi sembra che ci sia un gruppo di utenti e ogni utente può appartenere a un gruppo di organizzazioni e tu stai chiedendo le informazioni dell'utente nel contesto di tale organizzazione.

Se aiuta, ecco il tipo di situazione in cui utilizzerei un parametro di query:

/api/users/23642346?language=swahili

Poiché "lingua" controlla solo il modo in cui i dati vengono presentati, non quello che è, ha senso renderlo un parametro, non parte del modello di dati.

Ora non posso dire con certezza come gestire i tuoi dati, dato che non so per certo cosa sia effettivamente "Organizzazione", ma se si tratta di una situazione simile a quella che ho descritto per la prima opzione, quella è la vorrei andare.

    
risposta data 05.04.2016 - 00:44
fonte

Leggi altre domande sui tag