El nuevo método de consulta HTTP explicado
La reciente publicación del RFC 10008 ha introducido un nuevo método HTTP llamado QUERY, diseñado específicamente para realizar consultas complejas y relaciones profundamente anidadas en APIs RESTful.
Desde una perspectiva técnica, el método HTTP es solo una cadena. Sin embargo, los métodos estandarizados como GET y POST tienen comportamientos implícitos definidos por múltiples RFCs y prácticas comunes. Estos métodos son soportados por navegadores, servidores web y otros intermediarios.
“Además, enviar datos en el cuerpo de una solicitud GET es problemático debido a las diversas implementaciones que tratan estos casos de manera inconsistente”
Cuando se usan consultas complejas con GET, la URL puede volverse muy larga y difícil de leer. Además, enviar datos en el cuerpo de una solicitud GET es problemático debido a las diversas implementaciones que tratan estos casos de manera inconsistente.
El método POST permite enviar un cuerpo de solicitud, pero introduce problemas semánticos ya que se define como no idempotente y está destinado a la creación o procesamiento de recursos. Esto complica el uso de métodos automáticos como los retries en caso de fallos.
La introducción del método QUERY resuelve estos problemas al ser similar al GET, pero permitiendo un cuerpo de solicitud. Está diseñado para ser seguro e idempotente, lo que facilita la implementación de cachés y otras características útiles.
Sin embargo, la adopción generalizada del método QUERY todavía es limitada y puede tardar años en tener soporte completo en todas partes. Kreya ha añadido soporte nativo para HTTP QUERY, pero aún hay muchas áreas donde este nuevo método no está completamente implementado o soportado.
En resumen, aunque el método QUERY ofrece una solución prometedora para consultas complejas en APIs RESTful, su adopción generalizada todavía enfrenta desafíos significativos.