Règle d'API REST sur le tunneling

11

Lisez simplement ceci dans le livre de règles de l'API REST : GET et POST ne doivent pas être utilisés pour tunneler d'autres méthodes de demande .

Le tunneling fait référence à tout abus de HTTP qui masque ou dénature l'intention d'un message et sape la transparence du protocole. Une API REST ne doit pas compromettre sa conception en utilisant à mauvais escient les méthodes de requête HTTP dans le but de s'adapter aux clients avec un vocabulaire HTTP limité . Utilisez toujours correctement les méthodes HTTP comme spécifié par les règles de cette section. [faits saillants par moi]

Mais alors, beaucoup de frameworks utilisent la tunnellisation pour exposer les interfaces REST via des formulaires HTML, car <form>ne connaissent que GETet POST. Mon exemple le plus récent est un MethodRewriteMiddlewarepour flacon (soumis par l'auteur du framework): http://flask.pocoo.org/snippets/38/ .

Existe-t-il des moyens de se conformer à la "Règle" sans hacks ni modules complémentaires dans les frameworks Web?

miku
la source

Réponses:

4

Non, il n'y en a pas. Donc, si vous en avez besoin, enfreignez la règle de toute façon.

Je ne sais pas quel est le problème. Les protocoles encapsulent tout le temps d'autres protocoles. TCP / IP, par exemple, a quatre couches d'une telle abstraction .

Bien sûr, le meilleur chemin est pour les clients d'obtenir le programme et de prendre correctement en charge les verbes HTTP. Mais ce n'est pas un monde parfait.

Robert Harvey
la source
Merci, tout le monde le fait quand même (et d'autres protocoles le font par conception, comme vous le mentionnez). J'étais juste un peu surpris de voir la "règle" écrite aussi clairement.
miku