¿Cómo llamar a una API continuamente desde el lado del servidor en Node.js/Express.js?

Llamar a un punto final de API es la funcionalidad principal de la tecnología de Internet moderna. Por lo general, llamamos a la API desde el navegador. A veces necesitamos llamar al punto final de la API desde el propio servidor para obtener datos, cargar dependencias, etc.

Hay muchas formas de llamar a la API desde el propio servidor NodeJS, según el nivel de abstracción que desee utilizar. La forma más sencilla de llamar a una API desde el servidor NodeJS es usar la biblioteca Axios. 

Configuración del proyecto: cree un proyecto de NodeJS e inicialícelo con el siguiente comando.

mkdir Project && cd Project
npm init -y

Instalación del módulo: instale los módulos necesarios, es decir , ExpressJS y Axios , utilizando el siguiente comando.

npm i express axios

Ahora cree un archivo JS en la carpeta raíz de su proyecto y asígnele el nombre index.js

1. Realice una solicitud HTTP GET: escriba el siguiente código en su archivo index.js .

index.js

const express = require('express')
const axios = require('axios')
  
const app = express()
  
// Post ID tracker
var num = 0
  
setInterval(() => {
  
   // Increment post tracker
   num++
   console.log('Wait for 2 second...')
  
   // Make GET Request on every 2 second
   axios.get(
`https://jsonplaceholder.typicode.com/posts/${num}`)
  
      // Print data
      .then(response => {
         const { id, title } = response.data
         console.log(`Post ${id}: ${title}\n`)
      })
  
      // Print error message if occur
      .catch(error => console.log(
            'Error to fetch data\n'))
}, 2000)

Explicación: En el ejemplo anterior, NodeJS llama a una API en intervalos de 2 segundos para obtener datos. Si se resuelve la promesa, el bloque se ejecutará e imprimirá datos. Si se rechaza una promesa, se ejecutará el   bloque catch e imprimirá un mensaje de error.

Ejecute el servidor usando el siguiente comando:

node index.js 

Producción:

2. Realice una solicitud HTTP POST: escriba el siguiente código en el archivo index.js .

index.js

const express = require('express')
const axios = require('axios')
  
const app = express()
  
// Dummy database
const posts = [
   {
      title: 'Headline 1',
      id: 1,
      body: `sint suscipit perspiciatis velit dolorum 
            rerum ipsa laboriosam odio`,
      userId: 1
   },
  
   {
      title: 'Headline 2',
      id: 2,
      body: "fugit voluptas sed molestias voluptatem provident",
      userId: 1
   },
  
   {
      title: 'Headline 3',
      id: 3,
      body: "voluptate et itaque vero tempora molestiae",
      userId: 1
   }
]
  
// Loop over the posts
posts.forEach(post => {
  
   // Post data to API endpoint
   axios.post('https://jsonplaceholder.typicode.com/posts/', {
      body: post,
   })
  
      // Print response
      .then(response => {
         const { id, title } = response.data.body
         console.log(`Post ${id}: ${title}`)
      })
  
      // Print error message if occur
      .catch(error => console.log(error))
})

Explicación: En el ejemplo anterior, hemos creado datos de usuario ficticios. NodeJS realiza una solicitud POST para enviar estos datos al extremo de la API e imprimir los datos de la respuesta o el mensaje de error.

Ejecute el servidor usando el siguiente comando:

node index.js 

Producción:

Publicación traducida automáticamente

Artículo escrito por braktim99 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *