¿Qué es la API REST y cómo puede obtener datos para su aplicación o sitio web?

El acrónimo API significa interfaz de programación de aplicaciones. Una API es un conjunto de funciones que facilita la comunicación entre dos aplicaciones de software. Básicamente, una API toma una solicitud de una aplicación de software a otra y luego regresa al software de inicio con una respuesta relevante.

REST significa transferencia de estado representacional y es una arquitectura que se utiliza para diseñar aplicaciones cliente-servidor. Con una API Rest , obtiene una representación de los datos solicitados almacenados en una base de datos. Una API REST también no tiene estado, lo que significa que el servidor no almacena ningún dato entre las solicitudes de los clientes.

Si está buscando un ejemplo de API Rest y una explicación detallada de cómo funciona, siga leyendo.

¿Cómo funciona una API REST?

Una API REST accede a los datos a través de identificadores de recursos uniformes (URI), que es una cadena de caracteres que identifica un recurso específico. El tipo de URI utilizado por una API REST es un localizador de recursos uniforme (URL).

Para acceder a los recursos y manipularlos, una API REST utiliza los siguientes verbos de solicitud:

  • Obtener (esto se usa para adquirir datos de una base de datos)
  • Publicar (agregar nuevos datos a una base de datos)
  • Poner (actualizar los datos en una base de datos)
  • Eliminar (eliminar datos de una base de datos)

Si desea utilizar los servicios de una de las muchas API REST disponibles en la web (en lugar de crear una desde cero), solo tendrá acceso al verbo get request de la API REST (a través de una URL). Estas URL tienen varios componentes, pero los que necesita saber son la clave API y la consulta.

La clave de API es un identificador único, que recibirá una vez que se registre en una plataforma de API REST . La consulta suele ser una ecuación simple que se utiliza para personalizar su búsqueda. Por lo tanto, si desea obtener el clima actual en la ciudad de Nueva York, la sección de consulta de su URL podría ser "ciudad = Nueva York".

La ejecución de una solicitud de obtención devuelve una respuesta, que contiene un código de estado y un cuerpo. Si la solicitud tiene éxito, su cuerpo de respuesta contendrá los datos que desea utilizar en su sitio web o aplicación.

Uso de una aplicación de JavaScript para obtener datos de diferentes API de descanso

Para crear esta sencilla aplicación, hay otras dos aplicaciones de software que necesita instalar en su computadora: NodeJS y npm. Hemos escrito un artículo sobre cómo instalar NodeJS y npm en Ubuntu , así como otro sobre cómo hacer esto en Windows, así que échales un vistazo si quieres obtener más información.

Después de que las aplicaciones anteriores estén instaladas en su computadora, deberá seguir los siguientes pasos:

  1. Abra su IDE y ejecute la terminal.
  2. Navegue a la carpeta que contiene su archivo de aplicación JavaScript usando el comando cd.
  3. Inicialice npm con la siguiente línea de código:
 npm init -y

Hay un módulo npm que jugará un papel clave en la funcionalidad de esta aplicación. Este es el módulo got, que es una biblioteca de solicitudes HTTP para NodeJS. La siguiente línea de código instalará la última versión de la biblioteca obtenida en los archivos de su aplicación:

 npm install got@latest

Ahora puede seguir adelante y crear su aplicación.

Uso de la biblioteca Got para crear su aplicación

 //import the got library into your application
const got = require('got');

//fetch data from a specific REST API and prints its body to the terminal
(async () => {
try {

const response = await got(URL);
const data = JSON.parse(response.body);
console.log(data);
} catch (error) {
console.log(error.data);
}
})();

La aplicación anterior tomará datos de cualquier API REST en la web. Sin embargo, primero deberá proporcionar la URL del recurso relevante.

Obtención de datos de una API REST meteorológica

La API Weatherbit.io es una de las API REST meteorológicas más populares. Insertar la URL de esta API en la aplicación JavaScript simple anterior hará que la aplicación esté operativa.

Usando la API REST de Weatherbit.io

 //import the got library into your application
const got = require('got');

//fetch data from a specific REST API and prints its body to the terminal
(async () => {
try {
const URL = 'https://api.weatherbit.io/v2.0/current?lat=40.7128&lon=-74.0060&key=API_KEY';
const response = await got(URL);
const data = JSON.parse(response.body);
console.log(data);
} catch (error) {
console.log(error.data);
}
})();

La URL de la API Weatherbit.io ahora se insertó correctamente en la aplicación. Sin embargo, hay un aspecto de la URL que debe ajustar para que la aplicación se ejecute. Esta es la sección denominada "API_KEY", y esta clave es la que recibirá de Weatherbit.io cuando se registre para obtener una cuenta gratuita.

También tiene la opción de ajustar la sección de consulta en el código anterior. Actualmente, la aplicación consulta el clima en la latitud de 40.7128 y la longitud de -74.0060, pero puede insertar nuevas coordenadas. Aunque la consulta anterior es el enfoque recomendado, puede buscar el clima en una ubicación utilizando el nombre de la ciudad.

Para obtener más información sobre cómo utilizar la API REST de Weatherbit.io, haga clic aquí .

Después de insertar su clave API en la sección relevante anterior, ahora puede ejecutar su archivo JavaScript. La aplicación proporcionará algo similar a la siguiente salida en su terminal.

Ejemplo de respuesta de la API REST de Weatherbit.io

 data: [
{
rh: 53,
pod: 'd',
lon: -74.01,
pres: 1005.9,
timezone: 'America/New_York',
ob_time: '2021-09-27 14:50',
country_code: 'US',
clouds: 25,
ts: 1632754200,
solar_rad: 652.8,
state_code: 'NY',
city_name: 'New York City',
wind_spd: 5.66,
wind_cdir_full: 'west-southwest',
wind_cdir: 'WSW',
slp: 1015.9,
vis: 5,
h_angle: -30,
sunset: '22:44',
dni: 851.72,
dewpt: 12,
snow: 0,
uv: 5.68859,
precip: 0,
wind_dir: 240,
sunrise: '10:49',
ghi: 657.55,
dhi: 106.79,
aqi: 53,
lat: 40.71,
weather: [Object],
datetime: '2021-09-27:14',
temp: 22,
station: 'KJRB',
elev_angle: 40.89,
app_temp: 21.7
}
],
count: 1
}

Algunos de los aspectos más importantes de los datos devueltos en la respuesta incluyen:

  • City_name (devuelve el nombre de la ciudad con la longitud y latitud indicadas ).
  • Fecha y hora (devuelve la hora actual del ciclo en el formato AAAA-MM-DD: HH).
  • Tiempo (devuelve un objeto que contiene un icono meteorológico, un código meteorológico y una descripción de texto del tiempo).

Obtención de datos de una API REST de noticias

La API de noticias utilizada en esta sección es Newsdata.io. Como todas las API REST en la web, proporciona varias opciones de consulta, que puede utilizar para recuperar noticias de última hora de todo el mundo. Con la API de Newsdata.io, puede obtener noticias de un país específico o en un idioma, categoría, etc.

Con la aplicación JavaScript, puede recuperar datos de la API REST de noticias. Simplemente reemplace la URL en la aplicación anterior con la siguiente URL:

 'https://newsdata.io/api/1/news?apikey=YOUR_API_KEY&country=us'

El siguiente paso es reemplazar la sección "YOUR_API_KEY" en la URL anterior con la clave API que recibirá después de registrarse en Newsdata.io. La URL anterior devolverá noticias de última hora de Estados Unidos. Sin embargo, si desea recibir noticias de Japón, simplemente puede reemplazar la consulta "contry = us" por "country = jp".

Para obtener más información sobre cómo utilizar la API REST Newsdata.io, haga clic aquí .

Relacionado: ¿Desea agregar titulares de noticias a su sitio web o aplicación? Necesita la API de Mediastack

Ejemplo de respuesta de la API REST de Newsdata.io

 {
title: 'Driver Killed By His Own Car Door While Waiting In Line At Fast-Food Drive-Thru, Providing Cautionary Insights For AI Self-Driving Cars',
link: 'https://www.forbes.com/sites/lanceeliot/2021/09/27/driver-killed-by-his-own-car-door-while-waiting-in-line-at-fast-food-drive-thru-providing-cautionary-insights-for-ai-self-driving-cars/',
keywords: [Array],
creator: [Array],
video_URL: null,
description: "Sad news story about a driver that was killed by his own car door (while in a drive-thru), provides cautionary insights about
the advent of AI-based self-driving cars. Here's the insider look.",
content: "Sad news story about a driver that was killed by his own car door (while in a drive-thru), provides cautionary insights about the
advent of AI-based self-driving cars. Here's the insider look.",
pubDate: '2021-09-27 15:30:00',
image_URL: 'https://thumbor.forbes.com/thumbor/fit-in/0x0/filters%3Aformat%28jpg%29/https://specials-images.forbesimg.com/imageserve/614272b9f18bec6882652695/0x0.jpg?cropX1=23&cropX2=2455&cropY1=23&cropY2=1538',
source_id: 'forbes'
}

Uso de una aplicación de Python para obtener datos de diferentes API de descanso

Es posible obtener datos para su sitio web o aplicación utilizando cualquier lenguaje de programación con el que esté familiarizado. Entonces, si no desea usar JavaScript, puede lograr los mismos resultados con una aplicación Python.

Relacionado: Cómo construir API en Python: Frameworks populares

Todo lo que necesita hacer es instalar el módulo Python HTTP de solicitudes utilizando el entorno pip. Luego, puede construir su aplicación Python usando el siguiente código:

 # import the requests library
import requests
# grabbing data using the requests library
URL = 'https://newsdata.io/api/1/sources?apikey=YOUR_API_KEY=us'
res = requests.get(URL)
json = res.json()
for key in json:
print(key, json[key])

Al igual que en los ejemplos anteriores, deberá insertar su clave API en la sección correspondiente. A continuación, recibirá los mismos datos que devuelve la aplicación JavaScript.

Obtener datos para su sitio web o aplicación es bastante simple

Ahora tiene las herramientas que necesita para capturar datos para sus aplicaciones de software. Es importante recordar que la arquitectura REST facilita el acoplamiento flexible, lo que significa que puede usar cualquier lenguaje de programación para obtener datos de cualquier API REST en la web.

Ahora que sabe cómo utilizar Rest API , ¿por qué no intentarlo?