Est-il quelque chose de non-Reposant sur le fait de fournir des paramètres à une HTTP SUPPRIMER la demande?
Mon scénario, c'est que je suis à la modélisation de l' "Êtes-vous sûr de vouloir supprimer?" scénario. Dans certains cas, l'état de la ressource suggère que la demande de suppression peut être invalide. Vous pouvez probablement imaginer des scénarios de vous-même, où la confirmation de suppression est nécessaire
La solution que nous avons adoptée est de passer un paramètre à la demande de suppression pour indiquer que c'est ok pour procéder à la suppression ("?force_delete=true")
par exemple
DELETE http://server/resource/id?force_delete=true
Je crois que c'est toujours reposant depuis:
(a) La sémantique de SUPPRIMER ne sont pas modifiés: l'utilisateur peut toujours envoyer un demande de SUPPRESSION, mais cela peut échouer avec 409 et le corps de la réponse vais expliquer pourquoi. Je dis peut échouer parce que (pour des raisons qui n'en vaut pas expliquer) à certaines occasions, il n'y a aucune raison de demander à l'utilisateur.
(b) Il n'y a rien de Roy thèse de penser que c'est contre l'esprit du RESTE - pourquoi y aurait-il depuis l'adresse HTTP est un seul de la mise en œuvre de REPOS, alors pourquoi passer des paramètres HTTP matière
Quelqu'un peut me pointer à une déclaration définitive d'ongles que la raison pour laquelle ce n'est pas Reposante?
Sur une question connexe, si l'utilisateur ne spécifie pas de force_delete alors je suis de retour 409 Conflict
- , c'est que la réponse la plus appropriée code?
Suivi
Après quelques recherches, je pense que l'ajout de paramètres pour le SUPPRIMER peut violer à plusieurs principes.
La première est que la mise en œuvre, éventuellement, viole la "Interface Uniforme" (voir le paragraphe 5.1.5 du Roy thèse
En ajoutant 'force_delete" nous sommes en ajoutant une contrainte supplémentaire sur le déjà bien défini la méthode DELETE. Cette contrainte n'a de sens que pour nous.
Vous pouvez aussi argumenter qu'il viole la "5.1.2 Client-Serveur" depuis la boîte de dialogue de confirmation est vraiment une préoccupation de l'INTERFACE utilisateur et encore, pas tous les clients voudront confirmer la suppression.
Suggestions de quelqu'un?