API significa Interfaz de programación de aplicaciones. Consta de varios protocolos de comunicación y subrutinas que pueden ser utilizados por los programas para la intercomunicación. Hay varios tipos de API disponibles, como API WEB, API LOCALES, API de PROGRAMA, etcétera. Son una de las formas más eficientes y confiables de generar resultados.
Tipos de funciones API en Node.js :
- Funciones asíncronas sin bloqueo
- Síncrono, funciones de bloqueo
Funciones asíncronas sin bloqueo: como su nombre indica, estas funciones funcionan de forma asíncrona. Lo que significa es que cuando Node.js realiza una solicitud de datos a la API, no se bloqueará hasta que se reciban los datos. En su lugar, continuará moviéndose a la siguiente API después de llamarla, y un mecanismo de notificación de un evento de Node.js responderá al servidor para la llamada API anterior. Para decirlo en términos sencillos, estas funciones permiten trabajar más mientras se procesa la solicitud. Ejemplo: correos electrónicos, foros en línea
Funciones síncronas y de bloqueo: a diferencia de las funciones asíncronas, las funciones síncronas actúan como funciones de bloqueo. Lo que significa es que estas funciones harán que el sistema que llama espere una respuesta. Por lo tanto, cuando un sistema usa API sincrónicas, espera obtener datos inmediatos cuando se realizan las requests. Estos tipos de API se utilizan cuando la disponibilidad y la conectividad son altas y se espera una latencia baja. Para ponerlo en términos sencillos, la aplicación solicitará y esperará una respuesta hasta que se devuelva el valor. Ejemplo: mensajería instantánea, videoconferencias
Ejemplo: supongamos que tenemos un archivo JSON llamado data.json que contiene ciertos datos como se muestra a continuación:
{ "name": "John", "age": 50, "gender": "male" }
Ahora, usaremos funciones asíncronas y síncronas para leer estos datos. Node.js tiene un módulo incorporado llamado fs , que significa Sistema de archivos, que se puede usar para interactuar con archivos de forma modelada. Para usarlo, necesitamos requerirlo de la siguiente manera:
const fs = require('fs');
Hemos utilizado las siguientes dos funciones en nuestra aplicación:
- Para leer el archivo de forma asíncrona, hemos utilizado el método readFile() compatible con el módulo fs .
- Para leer el archivo de forma síncrona, hemos utilizado el método readFileSync() compatible con el módulo fs .
Ejemplo:
index.js
// Requiring inbuilt module const fs = require('fs'); // Asynchronous function fs.readFile('data.json', 'utf8', function (err,data) { if (err) { return console.log(err); } console.log("Below is the Data from Asynchronous function call") console.log(data); }); // Synchronous function var data = fs.readFileSync('data.json','utf8'); console.log("Below is the Data from Synchronous function call") console.log(data);
Paso para ejecutar la aplicación.
Ejecute el archivo index.js con el siguiente comando.
node index.js
Salida: Veremos la siguiente salida en la pantalla de su terminal:
Below is the Data from Synchronous function call { "name": "John", "age": 50, "gender": "male" } Below is the Data from Asynchronous function call { "name": "John", "age": 50, "gender": "male" }
Cuando se ejecuta el código anterior, producirá el mismo resultado que el asincrónico y en el mismo período de tiempo. La razón detrás de esto es que cuando estamos leyendo uno o dos archivos, la diferencia entre ambos métodos no será significativa. Pero cuando estamos operando con una base de datos y manejando múltiples requests, la diferencia será bastante clara ya que afectará directamente el rendimiento.
Publicación traducida automáticamente
Artículo escrito por greenblade29 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA