7
votes

Reste - Suppression d'une collection d'objets

est une chose tellement possible? Les personnes qui ont conçu le repos pensaient-elles simplement qu'ils supprimeraient les choses une à la fois?

Alors disons que j'ai 10 id 1-10 de FOO

Je veux supprimer les identifiants 3, 6 et 9 avec un seul appel de suppression HTTP.

Y a-t-il des choses que je peux faire cela sans offenser le pape?


0 commentaires

4 Réponses :


0
votes

Je ne pense pas que ce soit un problème.

Supprimer http://www.example.com/foos signifie supprimer tout.

Supprimer http://www.example.com/foos {3,6,9} signifie Supprimer FOO 3, 6, 9.


4 commentaires

Ces crochets sont-ils {#, #, #} une partie de la norme? Je n'ai jamais vu cela auparavant.


C'est juste une partie d'urime normale. Toute collection de ressources et de ressources peut être représentée avec URI, vous pouvez donner une sémantique à l'URI.


@Todd Les données supplémentaires dans l'URI Comme celui qui a l'air désordonnée, ne préféreriez-vous pas envoyer les données pour quoi supprimer réellement dans le corps de la demande? C'est ce que je considère fortement pour un système dans lequel le cas d'utilisation par défaut sera multiple des suppressions. J'ai aussi l'intention de faire appel à appeler 'Supprimer / Foos` sans un corps une action "invalide".


Supprimer http://www.example.com/foos semble être une opération très danguante, facile à fat-doigt. D'autres réponses indiquent ici une approche en deux étapes: Stackoverflow.com/questions/2421595/...



5
votes

La plupart des API que je connaissais ne permettent pas de supprimer plusieurs entités à la fois, mais d'effectuer d'autres opérations sur plusieurs entités avec des paramètres d'URL tels que ? id = 3,6,9 ou < code>? ID = 3 & ID = 6 & ID = 9 . Il serait donc assez courant de faire l'une des opérations suivantes: xxx

ou xxx


3 commentaires

Il suffit de garder à l'esprit qu'un tel appel ne invalidera pas les copies en cache de / foo / 3 , / foo / 6 et / foo / 9 .


@fumanchu mais ce serait auprès du client de savoir que. En outre, à moins que le client supprime les articles singulièrement, c'est-à-dire s'ils utilisaient certains pour la ressource de collecte, les ressources individuelles auraient des caches stables. Mais, les caches stables font simplement partie du Web.


Je voudrais également signaler, vous pourriez simplement envoyer une charge utile dans le corps de la requête de suppression pouvant être utilisée pour détailler exactement la suppression exacte.



3
votes

Vous pouvez également Supprimer / foos? ID = 3,6,9 .


0 commentaires

-3
votes

Si vous craignez d'offenser le pape, vous devriez peut-être passer du temps à lire les Écritures :-) https://datatratraquer.ief.org/doc/html/draft-ggorio-uritemplate-04

Je pense que toutes vos questions seront répondues là-bas.


3 commentaires

Pourriez-vous indiquer l'endroit exact dans le document susmentionné répondant à la question de l'OP?


@mark Recherchez tous les échantillons d'expansion qui utilisent l'exemple de la liste . Il existe de nombreuses façons d'étendre plusieurs valeurs dans un modèle URI. Outils.ietf.org/html/rfc6570


@DarRelMiller de sorte que la virgule des virgules a délimité des paires de clés dans le style de champ de formulaire? Si la suppression doit être enveloppée dans les transactions avec deux types d'état: succès, échec? (c.-à-d. Aucun succès partiel)