Connexion: Pourquoi l'opération DELETE ne prend pas en charge l'argument du corps de la requête ?

Créé le 5 mars 2019  ·  3Commentaires  ·  Source: zalando/connexion

https://github.com/zalando/connexion/blob/34c7cb160fec372d386a0daa139df2a568b01ac8/connexion/operations/abstract.py#L273

Salut,
Existe-t-il une raison pour laquelle le verbe DELETE ne prend pas en charge le corps de la demande dans la version 2.2.0 ?
Dans la version 1.1.15, j'ai pu envoyer le corps de la requête en tant que paramètre.

Version Python :
3.6.7
version de connexion :
2.2.0

Merci!

Commentaire le plus utile

Je vois, merci pour l'explication !
Je pense qu'il devrait au moins être configurable puisque cela fonctionnait sur les versions antérieures.
de toute façon, je peux contourner ce problème en utilisant:

request = connexion.request.json

Tous les 3 commentaires

La spécification indique que l'URI devrait être suffisant pour effectuer l'opération de suppression.

La méthode DELETE demande que le serveur d'origine supprime la ressource identifiée par le Request-URI

Il n'est pas expressément interdit d'inclure un corps de requête, mais il est généralement admis que vous ne le faites pas. J'ai l'impression que c'est la même raison pour laquelle ici.

Je vois, merci pour l'explication !
Je pense qu'il devrait au moins être configurable puisque cela fonctionnait sur les versions antérieures.
de toute façon, je peux contourner ce problème en utilisant:

request = connexion.request.json

Une RFC plus récente est plus explicite sur le comportement de la charge utile :
https://tools.ietf.org/html/rfc7231#section -4.3.5

Une charge utile dans un message de demande DELETE n'a pas de sémantique définie ;

Le lien a été fourni à partir de cette question Stackoverflow :
https://stackoverflow.com/questions/299628/is-an-entity-body-allowed-for-an-http-delete-request

J'ai rarement vu un corps en suppression, le seul exemple que j'ai en tête est celui-ci :
https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#delete -job-v1-batch

Lorsque nous supprimons une tâche Kubernetes, nous pouvons mentionner certaines options de suppression.

Même s'il est admis que nous ne le faisons pas, cela pourrait-il avoir du sens de l'autoriser dans le cadre ?

Cette page vous a été utile?
0 / 5 - 0 notes