Je suis de la conception d'une API pour aller sur HTTP et je me demandais si à l'aide de la commande HTTP POST, mais avec des paramètres de requête URL uniquement et pas de corps de la requête, est une bonne façon d'aller.
Considérations:
- "Un bon design Web" exige non la quantité des actions pour être envoyés par la POSTE. C'est un non-idempotent d'action.
- Il est plus facile de développer et déboguer cette application lorsque les paramètres de la requête sont présents dans l'URL.
- L'API n'est pas destiné à une utilisation généralisée.
- Il semble que de faire une requête POST avec pas de corps va prendre un peu plus de travail, par exemple, un
Content-Length: 0
- tête doit être explicitement ajouté. - Il me semble aussi qu'un POST avec pas de corps est un peu contre la plupart des développeur et HTTP cadres attentes.
Sont-il plus de pièges ou d'avantages à l'envoi de paramètres dans une requête POST via l'URL de la requête plutôt que le corps de la requête?
Edit: La raison de ce qui est en cours d'examen est que les opérations ne sont pas idempotent et ont des effets secondaires autres que de la récupération. Voir la spécification HTTP:
En particulier, la convention a été établi que le GET et HEAD les méthodes ne DOIVENT PAS avoir le l'importance de prendre une autre action de récupération. Ces méthodes devraient être considérée comme "sûre". Cela permet à l'utilisateur les agents de représenter d'autres méthodes, comme le POST, PUT et DELETE, dans un de façon particulière, de sorte que l'utilisateur soit conscient du fait que, éventuellement, un dangereux d'action est demandée.
...
Les méthodes peuvent également avoir la propriété de "idempotence" qui (en dehors de erreur de l'expiration ou de questions) les effets secondaires de N > 0 identique les demandes de est le même que pour un seul demande. Les méthodes GET, HEAD, PUT et SUPPRIMER le partage de cette propriété. Aussi, les méthodes et OPTIONS de TRACE DOIT PAS d'effets secondaires, et sont donc intrinsèquement idempotent.