Reguła interfejsu API REST dotycząca tunelowania

11

Po prostu przeczytaj to w Rulebook REST API : GET i POST nie mogą być używane do tunelowania innych metod żądania .

Tunelowanie odnosi się do każdego nadużycia HTTP, które maskuje lub wprowadza w błąd zamiar wiadomości i podważa przejrzystość protokołu. Interfejs API REST nie może naruszać jego projektu przez niewłaściwe użycie metod żądania HTTP w celu dostosowania się do klientów o ograniczonym słownictwie HTTP . Zawsze należy właściwie korzystać z metod HTTP określonych przez reguły w tej sekcji. [najważniejsze przeze mnie]

Jednak wiele frameworków używa tunelowania do ujawnienia interfejsów REST poprzez formularze HTML, ponieważ <form>wie tylko o GETi POST. Mój najnowszy przykład to MethodRewriteMiddlewarefor flask (przesłany przez autora frameworka): http://flask.pocoo.org/snippets/38/ .

Czy są jakieś sposoby na przestrzeganie „Reguły” bez włamań i dodatków w ramach sieciowych?

miku
źródło

Odpowiedzi:

4

Nie, nie ma. Więc jeśli potrzebujesz, i tak złam zasadę.

Nie wiem o co chodzi. Protokoły cały czas otaczają inne protokoły. Na przykład TCP / IP ma cztery warstwy takiej abstrakcji .

Oczywiście lepszą ścieżką jest, aby klienci mogli uzyskać dostęp do programu i poprawnie obsługiwać czasowniki HTTP. Ale to nie jest idealny świat.

Robert Harvey
źródło
Dzięki, wszyscy i tak to robią (i inne protokoły robią to zgodnie z projektem, jak wspomniałeś). Byłem trochę zaskoczony, że tak wyraźnie zapisano „zasadę”.
miku