Просто прочитайте это в REST API Rulebook : GET и POST не должны использоваться для туннелирования других методов запроса .
Туннелирование относится к любому злоупотреблению HTTP, которое маскирует или искажает намерения сообщения и подрывает прозрачность протокола. API-интерфейс REST не должен ставить под угрозу его конструкцию, неправильно используя методы запросов HTTP, пытаясь приспособить клиентов с ограниченным словарным запасом HTTP . Всегда правильно используйте методы HTTP, как указано в правилах в этом разделе. [основные моменты мной]
Но тогда многие фреймворки используют туннелирование для предоставления интерфейсов REST через HTML-формы, поскольку <form>
знают только о GET
и POST
. Мой самый последний пример - это MethodRewriteMiddleware
фляга (предоставлена автором фреймворка): http://flask.pocoo.org/snippets/38/ .
Есть ли способы соответствовать «Правилу» без хаков или надстроек в веб-фреймворках?