Header Ads Widget

Ticker

6/recent/ticker-posts

Revisión de Vulcain

 Revisamos Vulcain , un nuevo protocolo que utiliza HTTP / 2 Server Push para crear API REST rápidas e idiomáticas dirigidas por el cliente. 

Los desarrolladores han estado luchando con los cuellos de botella en el rendimiento de sus API web durante años. Algunos desarrolladores web estaban tratando de resolver el dilema con el procesamiento asincrónico desde 2013. Otros han experimentado con otros formatos y entornos de programación a lo largo de los años, con resultados mixtos.

En una apuesta por la velocidad y el rendimiento, algunos desarrolladores han recurrido a GraphQL para consolidar sus solicitudes en una llamada API. También es rápido y fácil trabajar con GraphQL. Termina haciendo muchos sacrificios, algunos de los cuales pueden ser bastante serios, cuando elige GraphQL sobre HTTP, donde es bastante posible hacer verdaderas API REST. Especialmente con la introducción de HTTP2 / HTTP3 .

Vulcain es un nuevo protocolo creado por el desarrollador Kevin Dunglas que usa HTTP / 2 y su función Server Push junto con la capacidad hipermedia de HTTP. También viene equipado con un proxy inverso de código abierto para que pueda convertir cualquier API web existente en una API Vulcain.

Aquí está nuestra revisión de la API de Vulcain, para que pueda decidir por sí mismo si desea incorporarla a su pila de desarrollo web.

Revisión de Vulcain

Vulcain: un protocolo para la creación de API REST de Kévin Dunglas. Repositorio de Github . También incluye un servidor de puerta de enlace de código abierto para usar con las API existentes.

Hay muchas razones por las que es posible que desee crear o aprovechar una API REST . Es muy escalable , por un lado. Los datos no están vinculados a métodos o recursos particulares, lo que le da al usuario final la capacidad de realizar diferentes tipos de llamadas y devolver diferentes tipos de datos. También admite una amplia gama de diferentes tipos de datos , a diferencia de SOAP. Las API RESTful pueden manejar XML, JSON o YAML, entre otros. Las API REST también no tienen estado , lo que significa que las llamadas a la API se pueden hacer independientes entre sí.

Desafortunadamente, algunos cuellos de botella de rendimiento, como la recuperación excesiva y la recuperación insuficiente, han impedido que las API web tradicionales aprovechen realmente la arquitectura REST . Muchas de las soluciones actuales, incluidas GraphQL y JSON: API , solucionan estos problemas mediante HTTP / 1. Desafortunadamente, estas soluciones causan problemas adicionales con los registros HTTP, la caché y la seguridad.

Vulcain aprovecha algunas de las nuevas características de HTTP / 2, afortunadamente, eliminando la necesidad de estas soluciones. El más importante puede ser Server Push.

Lea también: REST vs API de transmisión: en qué se diferencian

¿Qué es Server Push?

Acceder a un sitio web siempre ha implicado algún tipo de llamada y respuesta. Un dispositivo realiza una solicitud a un servidor remoto, que luego devuelve el contenido solicitado. Ambos formularios se manejan tradicionalmente con HTML. El recurso HTML devuelto por el servidor es analizado adicionalmente por el navegador, que llama a los scripts, hojas de estilo e imágenes necesarios.

Esto crea pasos adicionales después de que el recurso HTML ya se haya devuelto, lo que retrasa el procesamiento y aumenta los tiempos de carga de la página. Server Push soluciona este problema.

Server Push permite que un sitio web "envíe" activos a un usuario sin que tenga que solicitarlos. Permite al servidor enviar los recursos que saben que necesitará un usuario final antes de que los haya solicitado explícitamente. Sin embargo, esto también fue posible en HTML / 1. Lo que no fue posible fue el almacenamiento en caché . Esto significa que ciertos elementos tendrían que ser recuperados cada vez, aumentando el tiempo de carga de la página y eliminando muchas de las ventajas de usar Server Push en primer lugar.

Gracias a las capacidades de multiplexación de HTTP / 2, se pueden enviar en paralelo numerosos activos Server Push. Esto significa que los recursos se pueden apilar y enviar todos a la vez en lugar de tener que llamarlos individualmente. Esto hace que Vulcain sea aún más ágil y eficiente, reduciendo aún más los tiempos de carga de la página.

Impulsando las relaciones en Vulcain

¿Qué es la obtención insuficiente y excesiva?

Una de las razones por las que los desarrolladores recurrieron a GraphQL en lugar de REST es la captura insuficiente y excesiva. Ambos tienen repercusiones negativas en su ancho de banda.

La recuperación excesiva es cuando se recuperan demasiados datos de una llamada, lo que resulta en datos no utilizados. La captura insuficiente se produce cuando no se devuelven suficientes datos para un punto final, lo que hace que sea necesario llamar a un segundo punto final.

Ninguno de estos es tan común, pero suceden. Esto es especialmente cierto cuando se trata de escalar e iterar sus productos.

Vulcain vs. JSON

JSON es uno de los formatos de intercambio de datos más utilizados en la web. Puede transformar datos en cualquier punto de la transferencia de datos, desde el servidor al endpoint o incluso en la misma máquina. Con JSON siendo tan poderoso y popular, ¿cuáles son las ventajas de usar Vulcain como formato de intercambio de datos?

Por un lado, JSON no tiene un protocolo de manejo de errores . Cuando no funciona, simplemente no pasa nada. JSON tampoco es muy seguro, lo que probablemente sea su mayor inconveniente. Un servicio JSON que recibe una respuesta JSON envuelta en una llamada de función, ejecutará esa función.

Vulcain y GraphQL

Vulcain se creó en gran medida para eliminar la necesidad de tener que usar GraphQL, que está pensado en gran medida como una forma de consumir API. Para aquellos que se han acostumbrado a usar GraphQL o simplemente les gusta la interfaz, están de suerte. Es bastante fácil e intuitivo usar Vulcain junto con GraphQL.

Todo lo que tiene que hacer es realizar sus solicitudes GraphQL como lo haría normalmente. Estos se convierten en solicitudes REST mediante el uso de encabezados Vulcain y una biblioteca JavaScript dedicada. Puede usar bibliotecas como 'apollo-link-rest', que convierte todas las solicitudes GraphQL en un formato que Vulcain puede manejar.

Esto también resuelve los problemas potenciales que puede encontrar al ejecutar GraphQL en el lado del servidor.

Consultar y filtrar con Vulcain con el encabezado HTTP Fields

Revisión de la API de Vulcain: pensamientos finales

Internet se basa en principios RESTful. Hypermedia es lo que separa los recursos basados ​​en la web de una base de datos estática regular. La creación de servicios web que pueden aprovechar los estilos arquitectónicos RESTful aprovecha al máximo la tecnología basada en web. También solía ser prohibitivamente lento, desafortunadamente,

Se crearon marcos como GraphQL para resolver algunos de estos problemas. Vinieron con sus propias dificultades, desafortunadamente, principalmente en lo que respecta a la seguridad. Vulcain hace lo mejor de ambos mundos, brindándole velocidad y seguridad.

Ese tampoco es el único beneficio. La arquitectura RESTful hace que los servicios web sean infinitamente más escalables, lo que a sus clientes les encantará. Es mucho menos probable que tenga que preocuparse por enlaces o direcciones rotos cuando utiliza la arquitectura RESTful.

Vulcain aprovecha al máximo HTTP / 2 y HTTP / 3 para crear un marco para la próxima generación de servicios web. Esto es particularmente cierto en Server Push, cuya capacidad de multiplexación parece tener un gran potencial.

La capacidad de Vulcain para convertir otras API web a su formato es su otra gran fortaleza. No tendrá que cambiar las API que consume mientras aún puede aprovechar las capacidades de HTTP / 2 y HTTP / 3.

Vulcain es totalmente gratuito y de código abierto. Sin embargo, se necesita un poco de trabajo para que salga de la caja. Si es nuevo en el trabajo o la programación de API, es posible que deba dedicar un tiempo a acostumbrarse a su formato. Sin embargo, podría valer la pena el tiempo y el esfuerzo para hacerlo, con su potente y útil biblioteca incorporada. También se integra automáticamente con GraphQL, por lo que no tiene que elegir uno u otro. Teniendo en cuenta que muchos sitios web y herramientas digitales aún no han sido formateados para trabajar con HTTP / 2 y más allá, eso le brinda la oportunidad de integrar Vulcain en su flujo de trabajo ahora y aclimatarse al formato.

Publicar un comentario

0 Comentarios