Hay varias razones convincentes por las que las personas podrían querer mejorar el rendimiento de la API: Experiencia de usuario mejorada: las API más rápidas y con mayor capacidad de respuesta pueden proporcionar una experiencia de usuario más fluida para los clientes o usuarios finales. El rendimiento mejorado puede resultar en una latencia reducida, tiempos de respuesta más rápidos y una recuperación de datos más rápida, lo que lleva a una experiencia de usuario más eficiente y satisfactoria. Escalabilidad mejorada: los servidores de alto rendimiento pueden manejar una mayor cantidad de solicitudes y usuarios simultáneos, lo que los hace más escalables. La escalabilidad es crucial para las empresas en crecimiento que necesitan manejar cantidades cada vez mayores de tráfico y datos a medida que se expande su base de usuarios. El rendimiento mejorado de la API puede ayudar a las empresas a satisfacer las crecientes demandas sin comprometer los tiempos de respuesta o la calidad del servicio. Ventaja competitiva: las API de alto rendimiento pueden brindar a las empresas una ventaja competitiva. Los usuarios o clientes tienden a preferir servicios que ofrecen tiempos de respuesta más rápidos, mejor confiabilidad y un rendimiento general superior. Al brindar una experiencia API superior, las empresas pueden diferenciarse de la competencia y atraer a más usuarios o clientes. Tutorial Objetivo de aprendizaje Configuraremos un Proxy como un sistema de administración central para lograr un mejor rendimiento de la API. Un proxy actúa como intermediario entre clientes y servidores. Se encuentra entre el cliente que realiza las solicitudes de API y el servidor que aloja las API. Cuando un cliente realiza una solicitud de API, primero pasa por el proxy, que luego reenvía la solicitud al servidor. El servidor procesa la solicitud y envía la respuesta al proxy, que luego la reenvía al cliente. Esto permite que el proxy intercepte, modifique o almacene en caché la solicitud o la respuesta según sea necesario, lo que brinda oportunidades para optimizar el rendimiento de la API. Requisito previo Para (o ), instale en su sistema. macOS Linux Homebrew •Instalar Nginx • también conocida como línea de comandos Terminal, •Un nodo Ethereum Instalación de Nginx en Mac Hay los siguientes pasos para instalar Nginx en macOS: 1️⃣ Descarga Homebrew Para instalar Nginx en macOS, debe estar instalado en el sistema. es un administrador de paquetes para el sistema operativo Mac que nos permite instalar varias aplicaciones Unix fácilmente. Si no tiene , use el siguiente enlace para instalar: Homebrew Homebrew Homebrew https://brew.sh/ O simplemente escriba el siguiente comando en la terminal: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 2️⃣ Instalar Nginx El instalador del paquete homebrew ayudará a instalar el servidor web en macOS. Para instalar , use el siguiente comando: Nginx Nginx brew install nginx 3️⃣ Editar archivo de configuración De forma predeterminada, la ubicación del archivo de configuración de Nginx es: /opt/homebrew/etc/nginx/nginx.conf Para editar el archivo de configuración de Nginx, puede usar cualquier editor de texto de su elección. Por ejemplo, puede usar , o . Aquí hay un comando de ejemplo para editar el archivo de configuración de Nginx usando nano: nano vim emacs nano /opt/homebrew/etc/nginx/nginx.conf Estaremos editando el bloque del servidor que escucha en el puerto 80. Buscar bloque de servidor Posteriormente, proceda a incluir los tres puntos finales RPC de la red principal de Ethereum a continuación: location /nodereal { proxy_pass https://eth-mainnet.nodereal.io/v1/<API KEY>; proxy_set_header Content-Type "application/json"; } location /RPCProviderA { proxy_pass <https URI endpoint>; proxy_set_header Content-Type "application/json"; } location /RPCProviderB { proxy_pass <https URI endpoint>; proxy_set_header Content-Type "application/json"; } Es posible incluir varios extremos de RPC según sea necesario y, posteriormente, conservar el archivo de configuración. Para garantizar la ausencia de errores de sintaxis, proceda amablemente con la prueba del archivo de configuración de Nginx: nginx -t 🎊 En caso de que no haya errores presentes, se mostrará el siguiente resultado. nginx: la sintaxis del archivo de configuración /opt/homebrew/etc/nginx/nginx.conf está bien nginx: archivo de configuración /opt/homebrew/etc/nginx/nginx.conf prueba exitosa Para reiniciar el servidor Nginx, ejecute el siguiente comando: brew services restart nginx 4️⃣ Método de envío de API a través de Nginx Proxy Para probar el Nginx Proxy, estamos verificando el precio del gas en a través de . Enviaremos un comando curl para enviar una solicitud HTTP POST a la ubicación "/nodereal" de un servidor que se ejecuta en la máquina local (en " ") con una carga JSON que se muestra a continuación: Ethereum eth_gasPrice http://localhost curl -X POST --data '{"jsonrpc":"2.0","method":"eth_gasPrice","params":[],"id":1}' -H "Content-Type: application/json" http://localhost/nodereal ✅ {"jsonrpc":"2.0","id":1,"resultado":"0xdec36a8d1"} La respuesta que recibió después de ejecutar el comando curl es una respuesta JSON-RPC de un nodo . He aquí una breve explicación de la respuesta: Ethereum "jsonrpc":"2.0": este campo indica la versión del protocolo JSON-RPC utilizado en la respuesta. "id":1: Este campo es el identificador de la solicitud a la que corresponde esta respuesta. En este caso, la solicitud tenía un "id" de 1. "resultado": "0xdec36a8d1": este campo es el resultado de la solicitud JSON-RPC. En este caso, el resultado solicitado fue el precio actual del gas en la red , que se devuelve en formato como una cadena. Ethereum hexadecimal Para interpretar el valor decimal de "0xdec36a8d1" El valor decimal de "0xdec36a8d1" es 59797579985. Por lo tanto, el precio actual del gas en la red Ethereum en el momento en que se realizó la solicitud era 59797579985 wei (la denominación más pequeña de Ether) o 58 Gwei. Pruébelo con los servidores restantes, /RPCProviderA y /RPCProviderB, ejecutándolo en la máquina local (en " "): http://localhost curl -X POST --data '{"jsonrpc":"2.0","method":"eth_gasPrice","params":[],"id":1}' -H "Content-Type: application/json" http://localhost/RPCProviderA 🥳 Puede comenzar la prueba de su propio proxy. Ventajas y desventajas de usar Nginx como proxy para API Gateway ✅ Ventajas de usar Nginx como proxy para una puerta de enlace API: Equilibrio de carga: Nginx puede distribuir las solicitudes de API entrantes en varios servidores backend, lo que garantiza un equilibrio de carga eficiente y un rendimiento mejorado. Almacenamiento en caché: Nginx puede almacenar en caché las respuestas de la API, lo que reduce la carga en los servidores backend y mejora los tiempos de respuesta de la API. Escalabilidad: Nginx puede escalar horizontalmente fácilmente para acomodar un mayor tráfico de API y manejar una gran cantidad de conexiones simultáneas. Seguridad: Nginx proporciona varias funciones de seguridad, como terminación SSL, protección DDoS y filtrado de solicitudes, que ayudan a proteger la API de las amenazas de seguridad. ❌ Desventajas de usar Nginx como proxy para una puerta de enlace API: Funciones limitadas de administración de API: Nginx actúa principalmente como un proxy y carece de algunas funciones avanzadas de administración de API, como la documentación de API, el portal para desarrolladores y el control de versiones de API, que pueden ser necesarios en ecosistemas de API complejos. Complejidad de la configuración: configurar Nginx como una puerta de enlace API requiere una buena comprensión de la configuración de Nginx, que puede ser compleja para los usuarios que no están familiarizados con Nginx. Falta de autenticación y autorización avanzadas: Nginx proporciona funciones básicas de autenticación y autorización, pero es posible que no tenga capacidades avanzadas, como OAuth, validación de JWT y control de acceso detallado, que pueden ser necesarios en algunos escenarios de API. Conclusión En conclusión, mejorar el rendimiento de la API es fundamental para las empresas y los desarrolladores. El uso de Nginx como proxy para la puerta de enlace API ofrece ventajas como equilibrio de carga, almacenamiento en caché, escalabilidad y seguridad. Sin embargo, existen limitaciones, como funciones de administración de API limitadas, complejidad de configuración y falta de capacidades avanzadas de autenticación y autorización. La consideración cuidadosa de estos pros y contras es esencial. En general, aprovechar Nginx como proxy puede ser una herramienta poderosa para mejorar el rendimiento de la API. Estén atentos a la próxima serie de tutoriales, ya que compartiremos más sobre el problema común que enfrenta y cómo solucionarlo. También publicado . aquí