Usando APIs para Integrar y Ampliar las Funcionalidades de tus Aplicaciones Web

Usando APIs para Integrar y Ampliar las Funcionalidades de tus Aplicaciones Web

El desarrollo backend es un área de la programación que se dedica a crear la lógica, el funcionamiento y la comunicación de los sistemas web. El desarrollador backend es responsable de implementar las reglas de negocio, gestionar los datos, integrar las APIs y garantizar la seguridad y el rendimiento de las aplicaciones.

Una de las tendencias del momento es el uso de APIs (Interfaces de Programación de Aplicaciones) para integrar y ampliar las funcionalidades de las aplicaciones web.

En este artículo, explicaremos qué son las APIs, cuáles son sus tipos y ventajas, cómo usarlas para integrar y ampliar las funcionalidades de las aplicaciones web y cuáles son las mejores prácticas y herramientas para trabajar con ellas. También mostraremos ejemplos de código en Python, uno de los lenguajes más populares y versátiles para el desarrollo backend.

¿Qué son las APIs?

Las APIs (Interfaces de Programación de Aplicaciones) son interfaces que permiten la comunicación y el intercambio de datos entre diferentes sistemas, aplicaciones o componentes. Definen un conjunto de reglas, estándares y protocolos que especifican cómo los sistemas deben interactuar entre sí, qué datos se deben enviar y recibir, cuáles son los formatos y estructuras de los datos, qué métodos y funciones están disponibles, etc.

Las APIs facilitan la integración y ampliación de las funcionalidades de las aplicaciones web, ya que permiten acceder y utilizar recursos externos, como servicios, bibliotecas, frameworks, etc. Por ejemplo, una aplicación web puede usar una API para:

  • Acceder a datos de otras fuentes, como bases de datos, archivos, redes sociales, etc.
  • Realizar operaciones complejas o específicas, como cálculos matemáticos, procesamiento de imágenes, reconocimiento de voz, etc.
  • Añadir funcionalidades extra o personalizadas, como mapas, gráficos, chatbots, etc.

Las APIs pueden clasificarse en diferentes tipos, dependiendo de su propósito, su alcance o su estilo. Algunos de los tipos más comunes son: APIs internas (o privadas), APIs externas (o públicas), APIs asociadas (o compartidas), APIs RESTful (o REST), APIs SOAP (o SOAP), APIs GraphQL (o GraphQL), etc.

¿Cuáles son los tipos y ventajas de las APIs?

Existen varios tipos de APIs, cada uno con sus características y ventajas. Algunos de los tipos más comunes son:

APIs internas (o privadas)

Las APIs internas (o privadas) son APIs que se utilizan únicamente dentro de una organización o sistema específico. Permiten la comunicación entre diferentes componentes o módulos de la misma aplicación, o de aplicaciones relacionadas. Sus ventajas son:

  • Mayor control sobre los datos y las funcionalidades;
  • Mayor seguridad y privacidad;
  • Mayor flexibilidad y personalización.

APIs externas (o públicas)

Las APIs externas (o públicas) son APIs disponibles para cualquier persona o sistema que desee utilizarlas. Permiten la comunicación entre diferentes sistemas o aplicaciones de distintos dominios u organizaciones.
Sus ventajas son:

  • Mayor alcance y visibilidad;
  • Mayor interoperabilidad y compatibilidad;
  • Mayor innovación y colaboración.

APIs asociadas (o compartidas)

Las APIs asociadas (o compartidas) son APIs disponibles solo para un grupo restringido de personas o sistemas que tienen una relación de confianza o asociación con el proveedor de la API. Permiten la comunicación entre diferentes sistemas o aplicaciones de distintos dominios u organizaciones con intereses comunes o complementarios.
Sus ventajas son:

  • Mayor calidad y fiabilidad;
  • Mayor integración y sinergia;
  • Mayor valor y beneficio.

APIs RESTful (o REST)

Las APIs RESTful (o REST) son APIs que siguen los principios del estilo arquitectónico REST (Transferencia de Estado Representacional). Usan el protocolo HTTP (Protocolo de Transferencia de Hipertexto) para realizar las operaciones de CRUD (Crear, Leer, Actualizar, Eliminar) sobre los recursos (datos o funcionalidades) de la API.
Sus ventajas son:

  • Mayor simplicidad y estandarización;
  • Mayor escalabilidad y rendimiento;
  • Mayor flexibilidad y adaptabilidad.

APIs SOAP (ou SOAP)

Las APIs SOAP (o SOAP) son APIs que usan el protocolo SOAP (Protocolo Simple de Acceso a Objetos) para realizar operaciones sobre los servicios (funcionalidades) de la API. Utilizan el formato XML (Lenguaje de Marcado Extensible) para estructurar e intercambiar datos entre los sistemas.
Sus ventajas son:

  • Mayor robustez y seguridad;
  • Mayor consistencia y fiabilidad;
  • Mayor formalidad y especificación.

APIs GraphQL (o GraphQL)

Las APIs GraphQL (o GraphQL) son APIs que usan el lenguaje GraphQL para realizar operaciones sobre los datos de la API. Permiten que el cliente especifique exactamente qué datos quiere recibir de la API, evitando un exceso o falta de datos. Sus ventajas son:

  • Mayor eficiencia y optimización;
  • Mayor flexibilidad y personalización;
  • Mayor agilidad y productividad.

¿Cómo usar APIs para integrar y ampliar las funcionalidades de las aplicaciones web?

Para usar APIs y así integrar y ampliar las funcionalidades de las aplicaciones web, es necesario considerar algunos aspectos, como:

  • La elección de la API más adecuada para el caso de uso de la aplicación web.
  • La documentación de la API, que contiene información sobre cómo acceder y usar la API, como los endpoints, los parámetros, los formatos, los ejemplos, etc.
  • La implementación de las operaciones CRUD para manipular los datos o las funcionalidades de la API.
  • La integración de la API con el lenguaje y el framework de la aplicación web.
  • La optimización de las solicitudes y respuestas para garantizar el rendimiento y la eficiencia de la API.
  • La configuración de la autenticación y la autorización para garantizar la seguridad y privacidad de la API.

A continuación, mostraremos un ejemplo práctico de cómo usar una API externa de tipo RESTful (OpenWeatherMap) para integrar una funcionalidad extra a nuestra aplicación web en Python (Flask), que permite registrar y listar usuarios. La funcionalidad extra consiste en mostrar la temperatura actual en la ciudad del usuario.

Elección de la API

Para este ejemplo, usaremos la API de OpenWeatherMap, que es una API externa de tipo RESTful que permite acceder a datos sobre el clima de diferentes ciudades del mundo. La API de OpenWeatherMap tiene las siguientes ventajas:

  • Es gratuita y de fácil acceso;
  • Ofrece datos actualizados y confiables;
  • Soporta varios formatos y unidades de medida.

Documentación de la API

Para usar la API de OpenWeatherMap, debemos consultar la documentación, que contiene la información sobre cómo acceder y usar la API, como los endpoints, los parámetros, los formatos, los ejemplos, etc.

La documentación de la API de OpenWeatherMap nos informa que:

  • Para acceder a la API, necesitamos obtener una clave de acceso (API key) en el sitio web de OpenWeatherMap, la cual es un código alfanumérico que identifica nuestro acceso a la API.
  • Para obtener la temperatura actual de una ciudad, necesitamos usar el endpoint api.openweathermap.org/data/2.5/weather , que recibe como parámetro obligatorio el nombre de la ciudad (q) y como parámetro opcional la unidad de medida (units).
  • Para recibir la respuesta de la API en formato JSON, debemos usar el encabezado Accept: application/json en la solicitud.
  • Para recibir la temperatura en grados Celsius, debemos usar el valor metric en el parámetro units.

Un ejemplo de URL de solicitud para obtener la temperatura actual en grados Celsius en la ciudad de São Paulo sería:

http://api.openweathermap.org/data/2.5/weather?q=Sao Paulo&units=metric&appid=YOUR_API_KEY

Un ejemplo de respuesta de la API en formato JSON sería:

{
  "coord": {
    "lon": -46.6361,
    "lat": -23.5475
  },
  "weather": [
    {
      "id": 800,
      "main": "Clear",
      "description": "céu limpo",
      "icon": "01d"
    }
  ],
  "base": "stations",
  "main": {
    "temp": 25.02,
    "feels_like": 25.02,
    "temp_min": 23.33,
    "temp_max": 26.67,
    "pressure": 1018,
    "humidity": 57
  },
  "visibility": 10000,
  "wind": {
    "speed": 3.09,
    "deg": 0
  },
  "clouds": {
    "all": 0
  },
  "dt": 1631217609,
  "sys": {
    "type": 1,
    "id": 8326,
    "country": "BR",
    "sunrise": 1631189152,
    "sunset": 1631231567
  },
  "timezone": -10800,
  "id": 3448439,
  "name": "São Paulo",
  "cod": 200
}

En esta respuesta, podemos ver que el campo temp contiene la temperatura actual en grados Celsius en la ciudad de São Paulo, que es de 25.02°C. Podemos usar este valor para mostrarlo en nuestra aplicación web.

Implementación de las operaciones CRUD

Para implementar las operaciones CRUD (Crear, Leer, Actualizar, Eliminar) para manipular los datos o funcionalidades de la API de OpenWeatherMap, usaremos la biblioteca Requests, una biblioteca de Python que permite enviar solicitudes HTTP de manera simple e intuitiva. La biblioteca Requests permite interactuar con la API de OpenWeatherMap utilizando objetos nativos de Python o documentos JSON.

Para usar la biblioteca Requests, primero debemos instalarla con el siguiente comando:

pip install requests

Después, debemos importarla en nuestro código Python con el siguiente comando:

import requests

Ahora podemos implementar las operaciones CRUD utilizando los métodos de la biblioteca Requests. Por ejemplo:

  • Para enviar una solicitud GET para obtener la temperatura actual de una ciudad, usamos el método get() , pasando la URL de la solicitud como parámetro. Por ejemplo:
  • Para recibir la respuesta de la API en formato JSON, usamos el método json() , que devuelve un objeto de Python con los datos de la respuesta. Por ejemplo:
  • Para acceder al valor de la temperatura actual en la respuesta de la API, usamos la notación de corchetes o puntos, pasando el nombre del campo que queremos acceder. Por ejemplo:

# Enviar uma requisição GET para obter a temperatura atual em graus Celsius na cidade de São Paulo
response = requests.get("http://api.openweathermap.org/data/2.5/weather?q=Sao Paulo&units=metric&appid=YOUR_API_KEY")

# Receber a resposta da API em formato JSON
data = response.json()

# Acessar o valor da temperatura atual na resposta da API
temp = data["main"]["temp"]

Integración de la API con el lenguaje y el framework de la aplicación web

PPara integrar la API de OpenWeatherMap con el lenguaje (Python) y el framework (Flask) de la aplicación web, utilizaremos la biblioteca Flask-Requests, que es una extensión de Flask que facilita el uso de la biblioteca Requests dentro de la aplicación Flask. Flask-Requests permite usar los mismos métodos de la biblioteca Requests, pero con una sintaxis más sencilla e integrada en Flask.

Para usar la biblioteca Flask-Requests, primero necesitamos instalarla con el siguiente comando:

pip install flask-requests

Luego, debemos importarla en nuestro código Python con el comando:

from flask_requests import Requests

Después, debemos crear una instancia de la clase Requests e inicializarla con la aplicación Flask usando los siguientes comandos:

app = Flask(__name__)
requests = Requests(app)

En estos comandos, estamos creando una instancia de la clase Requests llamada requests e inicializándola con la aplicación Flask llamada app.

Ahora podemos usar la instancia requests para realizar operaciones CRUD utilizando los mismos métodos de la biblioteca Requests, pero con una sintaxis más simple e integrada en Flask. Por ejemplo:

  • Para enviar una solicitud GET para obtener la temperatura actual de una ciudad, usamos el método get() , pasando la URL de la solicitud como parámetro. Por ejemplo:
  • Para recibir la respuesta de la API en formato JSON, usamos el método json() , que devuelve un objeto de Python con los datos de la respuesta. Por ejemplo:
  • Para acceder al valor de la temperatura actual en la respuesta de la API, usamos la notación de corchetes o puntos, pasando el nombre del campo que queremos acceder. Por ejemplo:

# Enviar uma requisição GET para obter a temperatura atual em graus Celsius na cidade de São Paulo
response = requests.get("http://api.openweathermap.org/data/2.5/weather?q=Sao Paulo&units=metric&appid=YOUR_API_KEY")

# Receber a resposta da API em formato JSON
data = response.json()

# Acessar o valor da temperatura atual na resposta da API
temp = data["main"]["temp"]

Optimización de las solicitudes y respuestas

Para garantizar el rendimiento y la eficiencia de la API de OpenWeatherMap, es necesario optimizar las solicitudes y respuestas que se envían y reciben en la aplicación web. Para ello, debemos considerar algunos aspectos, como:

  • La frecuencia y la necesidad de las solicitudes realizadas por la aplicación web.
  • Los parámetros y encabezados utilizados en las solicitudes y respuestas.
  • El tamaño y formato de los datos enviados y recibidos por la API.
  • El tiempo y estado de las solicitudes y respuestas.

Para optimizar las solicitudes y respuestas de la API de OpenWeatherMap, podemos usar algunos recursos, como:

  • Cache: Consiste en almacenar temporalmente datos que se acceden con frecuencia o que no cambian a menudo, evitando solicitudes innecesarias o repetidas a la API. Podemos usar la biblioteca Flask-Caching, que es una extensión de Flask que permite implementar diferentes tipos de caché en la aplicación web.
  • Rate limit: Consiste en limitar el número de solicitudes que se pueden realizar en un determinado período de tiempo, evitando sobrecargar o abusar de la API. Podemos usar la biblioteca Flask-Limiter, que es una extensión de Flask que permite implementar diferentes tipos de límites de solicitudes en la aplicación web.
  • Error handling: Consiste en manejar los posibles errores o excepciones que pueden ocurrir durante las solicitudes o respuestas de la API, evitando interrumpir o comprometer el funcionamiento de la aplicación web. Podemos utilizar los recursos nativos de Python y Flask para capturar y gestionar los errores o excepciones de la API.

Conclusión

En este artículo, vimos cómo usar APIs para integrar y ampliar las funcionalidades de las aplicaciones web. Aprendimos qué son las APIs, cuáles son sus tipos y ventajas, cómo utilizarlas para acceder y usar recursos externos como servicios, bibliotecas, frameworks, etc., y cuáles son las mejores prácticas y herramientas para trabajar con ellas. También mostramos un ejemplo práctico de cómo usar una API externa de tipo RESTful (OpenWeatherMap) para integrar una funcionalidad extra en nuestra aplicación web en Python (Flask), que permite registrar y listar usuarios. La funcionalidad extra consiste en mostrar la temperatura actual en la ciudad del usuario.

Esperamos que este artículo te haya sido útil. Si deseas saber más sobre APIs, puedes acceder a los enlaces que mencionamos.

Referencias Bibliográficas

  • API. https://pt.wikipedia.org/wiki/API
  • What is an API? In English, please. https://www.freecodecamp.org/news/what-is-an-api-in-english-please-b880a3214a82/
  • API Types: An Introduction to the Different Types of APIs. https://rapidapi.com/blog/api-types/
  • OpenWeatherMap API Documentation. https://openweathermap.org/api.
  • Requests: HTTP for Humans™ — Requests 2.26.0 documentation. https://docs.python-requests.org/en/latest/
  • Flask-Requests — Flask-Requests 0.1 documentation. https://flask-requests.readthedocs.io/en/latest/
  • Flask-Caching — Flask-Caching 1.10.1 documentation. https://flask-caching.readthedocs.io/en/latest/
  • Flask-Limiter — Flask-Limiter 1.4 documentation. https://flask-limiter.readthedocs.io/en/stable/
  • Error Handling in Python | Flask (A Web Framework) Tutorial #7. https://www.youtube.com/watch?v=Li5BLk0EScE

💡
Las opiniones y comentarios emitidos en este artículo son propiedad única de su autor y no necesariamente representan el punto de vista de Listopro.

Listopro Community da la bienvenida a todas las razas, etnias, nacionalidades, credos, géneros, orientaciones, puntos de vista e ideologías, siempre y cuando promuevan la diversidad, la equidad, la inclusión y el crecimiento profesional de los profesionales en tecnología.