paint-brush
Renforcer les performances de votre API avec Proxypar@stdevk
357 lectures
357 lectures

Renforcer les performances de votre API avec Proxy

par ST Dev 5m2023/06/29
Read on Terminal Reader

Trop long; Pour lire

En résumé, l'amélioration des performances de l'API peut entraîner une expérience utilisateur améliorée, une productivité accrue, une évolutivité améliorée, des économies de coûts et un avantage concurrentiel, ce qui en fait un objectif souhaitable pour les entreprises et les développeurs. Par conséquent, nous expliquerons l'architecture de base de la passerelle API, comment configurer Proxy pour acheminer les services RPC avec Nginx et discuterons des avantages et des inconvénients de le faire.
featured image - Renforcer les performances de votre API avec Proxy
ST Dev  HackerNoon profile picture
0-item
1-item
2-item

Il existe plusieurs raisons impérieuses pour lesquelles les utilisateurs peuvent souhaiter améliorer les performances de l'API :

  1. Expérience utilisateur améliorée : des API plus rapides et plus réactives peuvent offrir une expérience utilisateur plus fluide aux clients ou aux utilisateurs finaux. L'amélioration des performances peut entraîner une latence réduite, des temps de réponse plus rapides et une récupération des données plus rapide, ce qui se traduit par une expérience utilisateur plus efficace et plus satisfaisante.
  2. Évolutivité améliorée : les serveurs hautes performances peuvent gérer un plus grand nombre de requêtes et d'utilisateurs simultanés, ce qui les rend plus évolutifs. L'évolutivité est cruciale pour les entreprises en croissance qui doivent gérer des volumes croissants de trafic et de données à mesure que leur base d'utilisateurs s'élargit. L'amélioration des performances de l'API peut aider les entreprises à répondre aux demandes croissantes sans compromettre les temps de réponse ou la qualité du service.
  3. Avantage concurrentiel : les API hautes performances peuvent donner aux entreprises un avantage concurrentiel. Les utilisateurs ou les clients ont tendance à préférer les services qui offrent des temps de réponse plus rapides, une meilleure fiabilité et des performances globales supérieures. En offrant une expérience API supérieure, les entreprises peuvent se différencier de leurs concurrents et attirer plus d'utilisateurs ou de clients.

Objectif d'apprentissage du didacticiel

Nous allons configurer un proxy en tant que système de gestion central pour améliorer les performances de l'API. Un proxy agit comme un intermédiaire entre les clients et les serveurs. Il se situe entre le client effectuant les requêtes API et le serveur qui héberge les API. Lorsqu'un client fait une demande d'API, il passe d'abord par le proxy, qui transmet ensuite la demande au serveur. Le serveur traite la demande et renvoie la réponse au proxy, qui la transmet ensuite au client. Cela permet au proxy d'intercepter, de modifier ou de mettre en cache la demande ou la réponse selon les besoins, offrant ainsi des opportunités d'optimiser les performances de l'API.

Prérequis

Pour macOS (ou Linux ), installez Homebrew sur votre système.

Installer Nginx sur Mac

Il y a les étapes suivantes pour installer le Nginx sur macOS :


1️⃣ Télécharger Homebrew

Pour installer le Nginx sur macOS, Homebrew doit être installé sur le système. Homebrew est un gestionnaire de paquets pour le système d'exploitation Mac qui nous permet d'installer facilement diverses applications Unix. Si vous n'avez pas Homebrew , utilisez le lien suivant pour l'installer : https://brew.sh/

Ou tapez simplement la commande suivante sur le terminal :

 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"


2️⃣ Installer Nginx

Le programme d'installation du package homebrew aidera à installer le serveur Web Nginx sur macOS. Pour installer le Nginx , utilisez la commande suivante :

 brew install nginx


3️⃣ Modifier le fichier de configuration

Par défaut, l'emplacement du fichier de configuration Nginx est :

 /opt/homebrew/etc/nginx/nginx.conf

Pour modifier le fichier de configuration Nginx, vous pouvez utiliser n'importe quel éditeur de texte de votre choix. Par exemple, vous pouvez utiliser nano , vim ou emacs . Voici un exemple de commande pour modifier le fichier de configuration Nginx à l'aide de nano :

 nano /opt/homebrew/etc/nginx/nginx.conf

Nous allons modifier le bloc serveur qui écoute sur le port 80.

Rechercher un bloc de serveur


Ensuite, continuez à inclure les trois points de terminaison RPC du réseau principal Ethereum ci-dessous :

 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"; }

Il est possible d'inclure plusieurs points de terminaison RPC si nécessaire et de conserver ensuite le fichier de configuration.

Pour vous assurer de l'absence d'erreurs de syntaxe, veuillez procéder au test du fichier de configuration Nginx :

 nginx -t

🎊 Dans le cas où il n'y a pas d'erreurs présentes, le résultat suivant sera affiché.


nginx : la syntaxe du fichier de configuration /opt/homebrew/etc/nginx/nginx.conf est correcte

nginx : le test du fichier de configuration /opt/homebrew/etc/nginx/nginx.conf est réussi

Pour redémarrer le serveur Nginx, veuillez exécuter la commande suivante :

 brew services restart nginx


4️⃣ Envoi de la méthode API via Nginx Proxy

Pour tester le proxy Nginx, nous vérifions le prix du gaz sur Ethereum via eth_gasPrice . Nous enverrons une commande curl pour envoyer une requête HTTP POST à l'emplacement "/nodereal" d'un serveur s'exécutant sur la machine locale (à " http://localhost ") avec une charge utile JSON vue ci-dessous :

 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,"result":"0xdec36a8d1"}

La réponse que vous avez reçue après avoir exécuté la commande curl est une réponse JSON-RPC d'un nœud Ethereum . Voici une brève explication de la réponse :

  • "jsonrpc":"2.0": Ce champ indique la version du protocole JSON-RPC utilisé dans la réponse.
  • « id » :1 : Ce champ est l'identifiant de la requête à laquelle correspond cette réponse. Dans ce cas, la requête avait un "id" de 1."result":"0xdec36a8d1": Ce champ est le résultat de la requête JSON-RPC. Dans ce cas, le résultat demandé était le prix actuel du gaz sur le réseau Ethereum , qui est renvoyé au format hexadécimal sous forme de chaîne.

Pour interpréter la valeur décimale de "0xdec36a8d1"

La valeur décimale de "0xdec36a8d1" est 59797579985. Par conséquent, le prix actuel du gaz sur le réseau Ethereum au moment de la demande était de 59797579985 wei (la plus petite dénomination d'Ether) ou 58 Gwei.

Testez-le avec les serveurs restants, /RPCProviderA & /RPCProviderB, en l'exécutant sur la machine locale (sur " http://localhost ") :

 curl -X POST --data '{"jsonrpc":"2.0","method":"eth_gasPrice","params":[],"id":1}' -H "Content-Type: application/json" http://localhost/RPCProviderA


🥳 Vous pouvez commencer à tester votre propre proxy.


Avantages et inconvénients de l'utilisation de Nginx comme proxy pour API Gateway


Avantages d'utiliser Nginx comme proxy pour une passerelle API :

  1. Équilibrage de charge : Nginx peut répartir les demandes d'API entrantes sur plusieurs serveurs principaux, garantissant un équilibrage de charge efficace et des performances améliorées.
  2. Mise en cache : Nginx peut mettre en cache les réponses de l'API, ce qui réduit la charge sur les serveurs principaux et améliore les temps de réponse de l'API.
  3. Évolutivité : Nginx peut facilement évoluer horizontalement pour s'adapter à l'augmentation du trafic d'API et gérer un grand nombre de connexions simultanées.
  4. Sécurité : Nginx fournit diverses fonctionnalités de sécurité, telles que la terminaison SSL, la protection DDoS et le filtrage des demandes, qui aident à protéger l'API contre les menaces de sécurité.


Inconvénients d'utiliser Nginx comme proxy pour une passerelle API :

  1. Fonctionnalités de gestion d'API limitées : Nginx agit principalement comme un proxy et ne dispose pas de certaines fonctionnalités de gestion d'API avancées, telles que la documentation de l'API, le portail des développeurs et la gestion des versions de l'API, qui peuvent être nécessaires dans les écosystèmes d'API complexes.
  2. Complexité de la configuration : la configuration de Nginx en tant que passerelle API nécessite une bonne compréhension de la configuration de Nginx, qui peut être complexe pour les utilisateurs qui ne sont pas familiers avec Nginx.
  3. Absence d'authentification et d'autorisation avancées : Nginx fournit des fonctionnalités d'authentification et d'autorisation de base, mais peut ne pas disposer de fonctionnalités avancées, telles que OAuth, la validation JWT et le contrôle d'accès précis, qui peuvent être nécessaires dans certains scénarios d'API.

Conclusion

En conclusion, l'amélioration des performances des API est cruciale pour les entreprises et les développeurs. L'utilisation de Nginx comme proxy pour la passerelle API offre des avantages tels que l'équilibrage de charge, la mise en cache, l'évolutivité et la sécurité. Cependant, il existe des limitations telles que des fonctionnalités de gestion d'API limitées, la complexité de la configuration et le manque de capacités d'authentification et d'autorisation avancées. Un examen attentif de ces avantages et inconvénients est essentiel. Dans l'ensemble, l'utilisation de Nginx en tant que proxy peut être un outil puissant pour améliorer les performances de l'API. Restez à l'écoute pour la prochaine série de didacticiels, car nous partagerons plus d'informations sur le problème courant rencontré et sur la manière de le déboguer.


Également publié ici .