Diciamo che voglio avere una risorsa RESTful per le persone, in cui il client è in grado di assegnare l'ID.
Una persona ha questo aspetto: {"id": <UUID>, "name": "Jimmy"}
Ora, come dovrebbe il client salvarlo (o "Metterlo")?
PUT /person/UUID {"id": <UUID>, "name": "Jimmy"}
- ora abbiamo questa brutta duplicazione che dobbiamo verificare continuamente: l'ID nel corpo corrisponde a quello nel percorso?- Rappresentazione asimmetrica:
PUT /person/UUID {"name": "Jimmy"}
GET /person/UUID
ritorna{"id": <UUID>, "name": "Jimmy"}
- Nessun ID nel corpo - ID solo nella posizione:
PUT /person/UUID {"name": "Jimmy"}
GET /person/UUID
ritorna{"name": "Jimmy"}
- Nessun tipo
POST
sembra una buona idea poiché l'ID è generato dal client.
Quali sono i modelli comuni e i modi per risolverlo? Gli ID solo in posizione sembrano il modo più dogmaticamente corretto, ma rendono anche più difficile l'implementazione pratica.