Header Ads Widget

Ticker

6/recent/ticker-posts

7 útiles herramientas HTTP

  

Un proveedor de API es similar a un personal de mantenimiento. Para solucionar un problema específico, se necesita una solución específica, y un personal de mantenimiento capacitado es el único que tiene la experiencia, el conocimiento y la capacidad para solucionar estos problemas. Lo mismo ocurre en el espacio API. Para continuar con la alegoría, al igual que un personal de mantenimiento tiene una caja de herramientas útil para aliviar las quejas y preocupaciones comunes, un proveedor de API también debería tener una caja de herramientas llena de sus propias herramientas especializadas.

Hoy veremos algunas de estas herramientas y resumiremos brevemente lo que hacen. Vamos a ver una variedad de implementaciones, tanto de línea de comandos y GUI -centric  clientes HTTP , y hablar en general de lo que hacen, y cómo un proveedor de API podríamos encontrar valor en ellos. Para ser claros, aquí no recomendamos una herramienta específica, ya que encontrar la herramienta adecuada será muy variable para cada proveedor.

rizo

cURL, también escrito como "curl", a menudo se califica como una ventanilla única para solicitudes HTTP . La idea detrás de cURL es proporcionar un método poderoso para transferir datos hacia o desde un servidor utilizando una amplia gama de protocolos .

De hecho, es esta amplia gama de protocolos lo que hace que cURL sea una solución tan querida. Según la documentación oficial, cURL admite:

DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, Telnet, TFTP, SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies, HTTP/2, cookies, user+password authentication (Basic, Plain, Digest, CRAM-MD5, NTLM, Negotiate and Kerberos), file transfer resume, proxy tunneling and more.

Lo que esto significa es que si necesita que los datos se transfieran hacia o desde un servidor, es muy probable que cURL pueda hacerlo. Toda esta funcionalidad se obtiene mediante la dependencia de la biblioteca libcurl y, debido al amplio soporte de protocolo que ofrece, esta biblioteca y cURL se han utilizado en impresoras, centros de medios e incluso automóviles. Lo que todo esto viene a ofrecer al desarrollador promedio es una biblioteca y herramienta muy poderosa que ofrece compatibilidad casi inmediata con una amplia gama de dispositivos.

cURL: el más popular, con un gran soporte de idiomas

Lea también: 5 marcos PHP ligeros para crear API REST

consola http

http-console es otro sistema basado en consola para interactuar con HTTP . Si bien cURL es muy poderoso, puede ser difícil de navegar. De manera similar, aunque HTTPie es poderoso, tiene su propia sintaxis y forma de hacer cosas que pueden resultar confusas para algunos desarrolladores.

http-console, entonces, es algo así como un término medio. Está diseñado para ser simple y admitir interacciones de protocolo HTTP multiplataforma , tanto que la documentación oficial resume su propósito en una sola frase: “ hablar con un servidor HTTP con curl puede ser divertido, pero la mayoría de las veces es un PITA ( dolor en el culo) ”.

Si bien http-console es muy fácil de usar, especialmente debido al hecho de que usa una sintaxis bastante típica, no es tan potente como otras soluciones como cURL. Dicho esto, es muy fácil de configurar , no tiene muchas dependencias y es verdaderamente multiplataforma; por esta razón, puede ser mejor para nuevos desarrolladores, aquellos que buscan eficiencia o aquellos que no necesitan -Suites de características.

http-console: simple, fácil de configurar, multiplataforma

HTTPie

En la misma línea que cURL, HTTPie es un cliente HTTP diseñado para hacer que todo el proceso sea más fácil, más amigable para los humanos y más intuitivo . Si bien cURL es fácil de utilizar una vez que uno tiene algo de experiencia y ha revisado la documentación, la amplia gama de opciones que se ofrecen puede ser algo abrumadora.

HTTPie adopta un enfoque ligeramente diferente: aunque sigue siendo muy poderoso, gran parte de su enfoque se centra en hacer que este poder sea más fácil de utilizar. Utilizando un comando muy simple y una sintaxis relativamente intuitiva, HTTPie ofrece facilidad de uso con una gama de funciones aún muy respetable, que incluye compatibilidad con JSON , compatibilidad con formularios y cargas de archivos, sesiones persistentes, compatibilidad con sistemas operativos de gran alcance, encabezados personalizados y más.

Cabe señalar aquí que, si bien muchos consideran que HTTPie es un reemplazo de cURL o una actualización de otras herramientas similares más antiguas, en realidad es una cuestión de enfoque . Si bien HTTPie es muy poderoso, la casi ubicuidad en muchos dispositivos de cURL hace que HTTPie sea difícil de vender para aquellos que utilizan el primero.

Dicho esto, comenzando desde cero, HTTPie podría ser la mejor opción para los usuarios novatos , y la simplicidad e intuición de este conjunto de herramientas no se puede exagerar en valor.

El regreso de la CLI: CLI que utilizan las empresas relacionadas con API

Http-pie: un cliente HTTP amigable para los humanos

http-prompt

Basado en gran medida en HTTPie y el kit de herramientas del indicador de Python , http-prompt es una combinación de las mejores características de ambos conjuntos de herramientas.

Quizás el punto fuerte de venta de sus características es el hecho de que http-prompt cuenta con una característica de autocompletar muy poderosa que permite la entrada de comandos abreviados y la autocorrelación con entradas conocidas. Esto puede suponer un gran ahorro de tiempo para los desarrolladores ocupados, especialmente cuando se prueban funciones conocidas, problemas u otros elementos recurrentes.

Además, http-prompt tiene un sistema de resaltado de sintaxis muy fluido y fácil de utilizar , que puede prestarse muy bien para la resolución de problemas y las pruebas. Si bien otras entradas de esta lista tienen algún tipo de resaltado de sintaxis, esta función en combinación con la función de autocompletar multiplica la efectividad de las acciones del desarrollador de API, lo que permite una mayor comprensión del diseño del sistema y una forma más ágil de responder a este diseño.

También debe tenerse en cuenta que http-prompt cuenta con una gran cantidad de funciones que parecen extrañamente similares a las de Unix . Esta familiaridad es realmente intencionada y tiene grandes beneficios para aquellos que saben cómo aprovecharlos. Al vincularse con canalizaciones y redirecciones similares a Unix, puede alimentar salidas a entradas, combinando consultas y operaciones en comandos integrados. Además, la integración del formato de especificación OpenAPI permite la lista de puntos finales usando "ls", mostrando estos puntos finales como si fueran un sistema de archivos.

http-prompt: único por su autocompletado, resaltado de sintaxis y compatibilidad con OpenAPI

Más herramientas de API: pruebas y supervisión de API con API Fortress

jq

Sobre el tema de la función similar a Unix, jq sirve como una herramienta de línea de comandos muy poderosa para JSON que se usa principalmente para la transformación y filtrado de flujos JSON. Para los usuarios de Unix y derivados de Linux, esta función está relacionada principalmente con, y casi funcionalmente idéntica a, el comando " sed ". Esta similitud es evidente en la documentación jq

"Jq es como sed para datos JSON: puedes usarlo para dividir, filtrar, mapear y transformar datos estructurados con la misma facilidad que sed, awk, grep y friends te permiten jugar con texto ".

Aunque conceptualmente simple, jq (y sed para el caso) es una herramienta muy poderosa , que permite la mutación masiva de un flujo de datos, incluso conversiones al por mayor de un formato de datos a otro, con muy poca pérdida de procesamiento para tareas adicionales, bibliotecas y dependencias. , co-funciones, etc.

jq está escrito en C portátil y, por diseño, no tiene dependencias de tiempo de ejecución . Esto significa que jq es extremadamente poderoso en su capacidad para manipular datos, pero que este poder no está en deuda con una gran cantidad de bibliotecas, dependencias u otros vínculos similares. jq se puede descargar como binario e implementar en un período de tiempo muy corto con muy poco costo de procesamiento.

jq: libre de dependencia en tiempo de ejecución

Cartero

Postman es, en su forma más básica, una GUI para la generación e inspección de solicitudes HTTP Dicho esto, Postman ciertamente hace más que simplemente permitir este proceso; de hecho, Postman es una herramienta muy efectiva y eficiente para el desarrollo de API , que ofrece una amplia gama de características que pueden resultar en mejores API.

Quizás la característica más fuerte de Postman es su elegante interfaz . Si bien muchos desarrolladores de API cuya experiencia se basa en gran medida en la codificación pueden encontrar esto sin propósito, para muchos desarrolladores novatos , esta es absolutamente una gran adición al conjunto de herramientas. Además, al salir de la línea de comandos y entrar en el espacio de la GUI, con herramientas adicionales integradas, una imagen más amplia a veces puede enfocarse mejor que si estuviera atascado en un mensaje.

Todas las demás características que Postman tiene para ofrecer se centran en esta idea de hacer un proceso de desarrollo más sencillo, fluido y menos complicado. El ahorro de historiales de solicitudes de API, sistemas de prueba automatizados, funciones de recopilación de métricas y monitoreo de API , e incluso servidores simulados, se unen para hacer de Postman una herramienta muy poderosa tanto para desarrolladores novatos como experimentados.

Postman: la elegante alternativa de GUI

Consulte también: Más de 10 herramientas y extensiones increíbles para API GraphQL

Pata

Paw es definitivamente una herramienta más complicada de lo que hemos discutido hasta ahora. Sin embargo, la complejidad adicional no deja de tener sus beneficios: la adición de una interfaz realmente excelente y extensa hace que Paw sea una de las interfaces más fáciles de usar en esta lista. Esta facilidad de uso y la naturaleza relativamente pulida de la interfaz en sí conduce a una serie de interacciones muy intuitivas y, por lo tanto, es una excelente primera herramienta para desarrolladores novatos y experimentados por igual.

Paw cuenta con muchas características para lo que en última instancia es una sola herramienta, lo que es muy atractivo para aquellos que buscan eficiencia y un equilibrio relativo entre simplicidad y funcionalidad. Paw admite JSON y RAML , y también se vincula con la especificación Swagger , lo que definitivamente la convierte en una solución sólida para describir su API.

Un gran punto de venta en la documentación de Paw es que paw se presta a la edición colaborativa . Al unificar características como listas de puntos finales, variables de entorno e integraciones que promueven la edición y las revisiones del equipo, los equipos pueden desarrollarse de manera más fluida, probando cada paso del camino.

Paw: conjunto de funciones robustas con edición colaborativa

Insomnio

Insomnia es una gran solución en la línea de Paw o Postman, y presenta algunas soluciones únicas centradas en el código . Si bien tiene soporte para variables globales como Paw y exportación de información de llamadas como Postman, también integra la generación de código para más de treinta bibliotecas de idiomas , lo que permite una codificación API rápida y un diseño receptivo. Este es probablemente el mayor argumento de venta de Insomnia y, de hecho, la documentación de Insomnia cita esta característica conceptual como " escribir menos código ".

Toda la idea detrás de Insomnia es una idea que los desarrolladores novatos han promocionado una y otra vez en los últimos años: funciona más como un ser humano y menos como una máquina. El enfoque centrado en la legibilidad humana para las herramientas de depuración ha llevado a una mayor prevalencia de interfaces de usuario como las que se analizan a lo largo de este artículo, y se podría argumentar que el insomnio es el resultado natural de tal enfoque.

Además, Insomnia ha invertido mucho en sus esfuerzos de desarrollo y apoyo a la comunidad. De hecho, en junio de 2017, Insomnia integró Unix Domain Socket Support , una metodología para la comunicación entre procesos en una sola máquina host. Esta fue una característica desarrollada por la comunidad, y ver que una aplicación tan bien diseñada integre tales funciones a través de los esfuerzos de la comunidad solo conducirá a una funcionalidad mayor y más sólida.

Conclusión

Si bien cualquiera de estas herramientas es aceptable para la mayoría de los proveedores, debe tenerse en cuenta que esto es solo la punta del iceberg. Eso es lo mejor de algo tan abierto y público como HTTP: casi cualquier persona puede encargarse de diseñar una solución específica para un problema específico, y para los proveedores de API, esto invariablemente significa una amplia gama de opciones para resolver incluso las más específicas. cuestiones.

Dicho esto, nos gustaría saber: ¿cuáles son sus implementaciones favoritas ? ¿Prefieres aplicaciones como Insomnia o soluciones integradas como Postman? Háganos saber en los comentarios a continuación.

Publicar un comentario

0 Comentarios