Regola API REST relativa al tunneling


11

Basta leggere questo nel Rulebook API REST : GET e POST non devono essere usati per tunnelare altri metodi di richiesta .

Il tunneling si riferisce a qualsiasi abuso di HTTP che maschera o travisa l'intento di un messaggio e mina la trasparenza del protocollo. Un'API REST non deve comprometterne la progettazione utilizzando in modo improprio i metodi di richiesta HTTP nel tentativo di soddisfare i client con un vocabolario HTTP limitato . Utilizzare sempre correttamente i metodi HTTP come specificato dalle regole in questa sezione. [mette in evidenza da me]

Ma poi molti framework usano il tunneling per esporre interfacce REST tramite moduli HTML, dato che <form>conosce solo GETe POST. Il mio esempio più recente è MethodRewriteMiddlewarefor for flask (inviato dall'autore del framework): http://flask.pocoo.org/snippets/38/ .

Qualche modo per conformarsi alla "Regola" senza hack o componenti aggiuntivi nei framework Web?

Risposte:


4

No, non c'è. Quindi, se necessario, infrangi comunque la regola.

Non so quale sia il grosso problema. I protocolli incapsulano sempre altri protocolli. TCP / IP, ad esempio, ha quattro livelli di tale astrazione .

Naturalmente, il percorso migliore è che i client ottengano con il programma e supportino correttamente i verbi HTTP. Ma non è un mondo perfetto.


Grazie, tutti lo fanno comunque (e altri protocolli lo fanno di progettazione, come lo dici tu). Sono stato solo un po 'sorpreso di trovare la "regola" scritta così chiaramente.
Miku,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.