J'ai besoin d'invoquer un processus qui ne nécessite aucune intervention de l'utilisateur, mais simplement un déclencheur. Je prévois d'utiliser POST/uri sans un corps pour déclencher le processus. Je veux savoir si cela est considéré comme mauvais par HTTP et par les REST perspectives??).
J'ai demandé cette question au groupe de travail HTTP de l'IETF il y a quelques mois. La réponse courte est: NON, ce n'est pas une mauvaise pratique (mais je suggère de lire le fil pour plus de détails).
L'utilisation d'un POST au lieu d'un GET est parfaitement raisonnable, car elle indique également au serveur (et aux passerelles en cours de route) de ne pas renvoyer une réponse en cache.
Le POST est complètement OK. En différence de GET avec POST vous modifiez l'état du système (votre déclencheur est très probablement "en train de" faire quelque chose et en modifiant des données).
J'ai utilisé POST déjà sans charge utile et il se sent "OK". Une chose à faire lorsque vous utilisez POST sans charge utile: en-tête de passe Content-Length: 0
. Je me souviens de problèmes avec certains mandataires lorsque mon client api ne l’a pas réussi.
Si vous utilisez POST/uri sans corps, utilisez une fonction qui ne prend pas d'argument .eg int post (void); il est donc raisonnable d'avoir une fonction dans votre classe de ressources. qui peut changer l'état d'un objet sans argument, si vous envisagez d'implémenter la fonction tactile Unix pour un URI, n'est-ce pas un choix judicieux?
Oui, vous pouvez envoyer une requête POST) et ne pas utiliser de corps mais utiliser des paramètres de chaîne de requête. Attention, si vos paramètres contiennent des caractères non valides HTTP, vous devrez les encoder.
Par exemple, si vous avez besoin de POST 'bonjour le monde') jusqu'au point d'arrivée, vous devrez le faire ressembler à ceci: http://api.com?param=hello% 20world