Disons que je veux avoir une ressource RESTful pour les personnes, où le client peut attribuer un ID.
Une personne ressemble à ceci: {"id": <UUID>, "name": "Jimmy"}
Maintenant, comment le client doit-il le sauvegarder (ou le «PUT»)?
PUT /person/UUID {"id": <UUID>, "name": "Jimmy"}
- maintenant nous avons cette mauvaise duplication que nous devons vérifier tout le temps: l'ID dans le corps correspond-il à celui dans le chemin?- Représentation asymétrique:
PUT /person/UUID {"name": "Jimmy"}
GET /person/UUID
Retour{"id": <UUID>, "name": "Jimmy"}
- Aucun ID dans le corps - ID uniquement dans l'emplacement:
PUT /person/UUID {"name": "Jimmy"}
GET /person/UUID
Retour{"name": "Jimmy"}
- Aucune sorte de ne
POST
semble être une bonne idée puisque l'ID est généré par le client.
Quels sont les schémas courants et les moyens de le résoudre? Les identifiants uniquement localisés semblent être le moyen le plus dogmatiquement correct, mais cela rend également la mise en œuvre pratique plus difficile.