Supponiamo di avere una risorsa chiamata group
con la seguente rappresentazione:
{
"id": 1,
"name": "Superheroes"
"_links": {
"self": {
"href": "http://my.api.com/groups/1"
}
}
}
Ora diciamo che voglio creare una nuova istanza person
di POST
ing a /persons/1
. Quale dei seguenti dovrei usare per il corpo della richiesta:
Utilizzo dell'ID
{
"name": "Batman",
"groupId": 1
}
Uso del link
{
"name": "Batman",
"group": "http://my.api.com/groups/1"
}
Con il primo metodo accedo all'ID direttamente o per cercare la risorsa correlata o eventualmente memorizzare l'id nel database, quando mantengo l'istanza person
. Ma con l'altro metodo, devo estrarre l'id dall'URI o, seguire il link per caricare la risorsa correlata, e quindi scoprire il suo id. Non voglio davvero archiviare l'URI nel database.
Con quest'ultima opzione, visto che il server controlla la struttura dell'URI, per me va bene analizzare l'id dal link? Seguire il link al server stesso sembra strano, visto che a questo punto abbiamo già accesso alle informazioni direttamente (abbiamo solo bisogno dell'ID).
Quindi, per riassumere, quale di queste opzioni è la migliore?
- Utilizza l'id direttamente.
- Utilizza il link, ma analizza l'ID.
- Utilizza il link, ma accedi al link per ottenere l'istanza della risorsa, quindi ottieni l'id.