J’ai besoin d’appeler un processus qui ne nécessite aucune entrée de l’utilisateur, juste un déclencheur. Je prévois d’utiliser POST /uri sans corps pour déclencher le processus. Je veux savoir si cela est considéré comme mauvais du point de vue HTTP et REST?
Réponses
Trop de publicités?J’ai posé 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).
POST est complètement OK. Par différence de GET avec POST, vous modifiez l’état du système (très probablement votre déclencheur est de « faire » quelque chose et de modifier les données).
J’ai déjà utilisé POST sans charge utile et il « se sent » OK. Une chose que vous devez faire lorsque vous utilisez POST sans charge utile: En-tête de passage `` . Je me souviens de problèmes avec certains proxys lorsque je api-client ne l’a pas passé.
Si vous utilisez POST /uri sans corps, c’est quelque chose comme utiliser une fonction qui ne prend pas d’argument .e.g int post (void); il est donc raisonnable d’avoir une fonction à votre classe de ressources qui peut modifier l’état d’un objet sans avoir d’argument. Si vous envisagez d’implémenter la fonction tactile Unix pour un URI, n’est-ce pas un bon choix ?
Oui, il est possible d’envoyer une demande POST sans corps et d’utiliser à la place des paramètres de chaîne de requête. Mais attention si vos paramètres contiennent des caractères qui ne sont pas valides HTTP, vous devrez les encoder.
Par exemple, si vous avez besoin de POST 'hello world' vers et le point final, vous devrez le faire ressembler à ceci: http://api.com?param=hello%20world