Regla API REST sobre tunelización

11

Simplemente lea esto en el Libro de reglas de la API REST : GET y POST no deben usarse para hacer un túnel con otros métodos de solicitud .

La tunelización se refiere a cualquier abuso de HTTP que enmascara o tergiversa la intención de un mensaje y socava la transparencia del protocolo. Una API REST no debe comprometer su diseño haciendo un mal uso de los métodos de solicitud de HTTP en un esfuerzo por acomodar a los clientes con vocabulario HTTP limitado . Siempre haga un uso adecuado de los métodos HTTP como se especifica en las reglas de esta sección. [destacados por mí]

Pero muchos marcos usan túneles para exponer interfaces REST a través de formularios HTML, ya que <form>solo conoce GETy POST. Mi ejemplo más reciente es un MethodRewriteMiddlewarematraz (presentado por el autor del marco): http://flask.pocoo.org/snippets/38/ .

¿Alguna forma de cumplir con la "Regla" sin hacks o complementos en marcos web?

miku
fuente

Respuestas:

4

No, no hay Entonces, si es necesario, infringe la regla de todos modos.

No sé cuál es el gran problema. Los protocolos encapsulan otros protocolos todo el tiempo. TCP / IP, por ejemplo, tiene cuatro capas de tal abstracción .

Por supuesto, la mejor ruta es que los clientes obtengan el programa y admitan los verbos HTTP correctamente. Pero no es un mundo perfecto.

Robert Harvey
fuente
Gracias, bueno, todos lo están haciendo de todos modos (y otros protocolos lo hacen por diseño, como usted lo menciona). Me sorprendió un poco encontrar la "regla" escrita tan claramente.
miku