REST-API-Regel zum Tunneln

10

Lesen Sie dies einfach im REST-API-Regelbuch : GET und POST dürfen nicht zum Tunneln anderer Anforderungsmethoden verwendet werden .

Tunneling bezieht sich auf jeden Missbrauch von HTTP, der die Absicht einer Nachricht maskiert oder falsch darstellt und die Transparenz des Protokolls untergräbt. Eine REST-API darf ihr Design nicht beeinträchtigen, indem sie die Anforderungsmethoden von HTTP missbraucht, um Clients mit begrenztem HTTP-Vokabular zu unterstützen . Verwenden Sie die in den Regeln in diesem Abschnitt angegebenen HTTP-Methoden immer ordnungsgemäß. [Highlights von mir]

Aber dann verwenden viele Frameworks Tunneling , um REST-Schnittstellen über HTML-Formulare verfügbar zu machen, da sie <form>nur über GETund Bescheid wissen POST. Mein jüngstes Beispiel ist ein MethodRewriteMiddlewarefor flask (vom Autor des Frameworks eingereicht): http://flask.pocoo.org/snippets/38/ .

Gibt es Möglichkeiten, die "Regel" ohne Hacks oder Add-Ons in Web-Frameworks einzuhalten?

miku
quelle

Antworten:

3

Nein, gibt es nicht. Wenn Sie also müssen, brechen Sie trotzdem die Regel.

Ich weiß nicht, was die große Sache ist. Protokolle kapseln ständig andere Protokolle. TC / PIP hat vier Schichten einer solchen Abstraktion .

Der bessere Weg ist natürlich, dass Clients mit dem Programm arbeiten und die HTTP-Verben ordnungsgemäß unterstützen. Aber es ist keine perfekte Welt.

Robert Harvey
quelle
Danke, nun, jeder macht es trotzdem (und andere Protokolle tun es absichtlich, wie Sie es erwähnen). Ich war nur ein bisschen überrascht, dass die "Regel" so klar aufgeschrieben war.
Miku