En este artículo, crearemos un proxy Node.js que reenvía requests a diferentes servidores o puntos finales.
Servidor proxy: los servidores proxy actúan como intermediarios entre el usuario final y el sitio web o la API a la que desean acceder.
¿Por qué servidor proxy?
En el método estándar, el cliente envía una solicitud directamente al extremo de la API para obtener los datos deseados. En este caso, el proxy node.js actuará como intermediario entre el usuario y la API. Por lo tanto, el usuario realiza una solicitud al proxy, que luego se reenvía al punto final de la API. El usuario solicita al punto final del proxy.
Los beneficios de usar un proxy son:
- Permitir y restringir ciertos recursos de la API.
- Mejora el rendimiento de la red.
- Balanceo de carga.
Ejemplo: Construyamos un servidor proxy node.js.
Requisitos previos: asegúrese de tener las siguientes aplicaciones en su dispositivo.
- Node.js ( instalar ).
- Código de Visual Studio o cualquier otro editor de código.
- Cartero para probar las requests de API.
Enfoque: Construiremos un proxy node.js para enviar requests a una API meteorológica: abra el mapa meteorológico utilizando el marco http-proxy-middleware.
Paso 1: inicializar npm
Cree un nuevo directorio de proyectos y diríjase a la terminal. Escriba el siguiente comando para inicializar npm.
npm init -y
Paso 2: Instala las dependencias requeridas
Necesitamos algunos paquetes en nuestro proyecto que se enumeran a continuación:
- express: es un marco node.js.
- http-proxy-middleware: es un marco de proxy.
- dotenv: Carga variables de entorno.
- morgan: Registra las requests.
Instale los paquetes anteriores ejecutando el siguiente comando:
npm i express http-proxy-middleware dotenv morgan
Paso 3: Crear un servidor proxy
Cree un archivo app.js y escriba el código para el servidor proxy.
Primero, importaremos los paquetes instalados a nuestro proyecto y crearemos un servidor express.
const express = require('express'); const morgan = require("morgan"); const { createProxyMiddleware } = require('http-proxy-middleware'); require('dotenv').config() // Creating express server const app = express();
Para usar la API abierta del mapa meteorológico, necesita una clave API. Vaya a https://openweathermap.org/api, inicie sesión o cree una nueva cuenta. Haga clic en claves API y copie la clave.
Crearemos un archivo .env para almacenar esta clave API y su URL. Agregue el siguiente código en el archivo .env
API_BASE_URL = "https://api.openweathermap.org/data/2.5/weather" API_KEY_VALUE = "<Enter your API key>"
Luego, mencionaremos nuestro puerto, host y URL de API.
const PORT = 3000; const HOST = "localhost"; const API_BASE_URL = process.env.API_BASE_URL; const API_KEY_VALUE = process.env.API_KEY_VALUE; const API_SERVICE_URL = `${API_BASE_URL}?q=London&appid=${API_KEY_VALUE}`;
La lógica del proxy: crearemos un middleware de proxy y especificaremos el punto final de la API y la nueva ruta que el usuario usará para obtener datos. Por defecto, recuperaremos el clima de Londres.
app.use('/weather', createProxyMiddleware({ target: API_SERVICE_URL, changeOrigin: true, pathRewrite: { [`^/weather`]: '', }, }));
API_SERVICE_URL se ocultará para el usuario, y solo podrá solicitar el clima de localhost: 3000/weather. Detrás de escena, la ruta se reescribirá en localhost:3000/<API_SERVICE_URL>.
Configurar el servidor
// Start Proxy app.listen(PORT, HOST, () => { console.log(`Starting Proxy at ${HOST}:${PORT}`); });
Agregue el siguiente código al archivo app.js.
app.js
const express = require("express"); const morgan = require("morgan"); const { createProxyMiddleware } = require("http-proxy-middleware"); require("dotenv").config(); // Create Express Server const app = express(); // Configuration const PORT = 3000; const HOST = "localhost"; const { API_BASE_URL } = process.env; const { API_KEY_VALUE } = process.env; const API_SERVICE_URL = `${API_BASE_URL}?q=London&appid=${API_KEY_VALUE}`; // Logging the requests app.use(morgan("dev")); // Proxy Logic : Proxy endpoints app.use( "/weather", createProxyMiddleware({ target: API_SERVICE_URL, changeOrigin: true, pathRewrite: { "^/weather": "", }, }) ); // Starting our Proxy server app.listen(PORT, HOST, () => { console.log(`Starting Proxy at ${HOST}:${PORT}`); });
Paso para iniciar la aplicación: Ejecute la aplicación usando el siguiente comando:
node app.js
Producción:
Ahora está listo para usar su servidor proxy.
Paso 4: Vaya a Postman para enviar requests.
Enviaremos una solicitud a localhost:3000/weather y obtendremos datos meteorológicos para Londres, como se especifica en la consulta de URL. El usuario ni siquiera conoce el punto final exacto de la API. El usuario envía una solicitud al servidor proxy y el servidor proxy la reenvía al extremo de la API.
Producción:
Publicación traducida automáticamente
Artículo escrito por riyaa7vermaa y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA