Conecta APIs con Python

Conecta APIs con Python

El desarrollo de una aplicación requiere ciertas inversiones, especialmente en el involucramiento de profesionales especializados y en el uso de recursos tecnológicos. Hoy en día, muchas empresas optan por reducir costos al invertir en la contratación de servicios que entreguen lo que necesitan, sin preocuparse por crear y mantener estas aplicaciones.

En este escenario se encuentran las APIs, que permiten conectarse a entornos completos, mantenidos por terceros de forma simplificada. El backend de la aplicación es transparente para el contratista, que dedica muchos menos recursos a desarrollar solo las integraciones necesarias. En este artículo, presentamos el proceso paso a paso para conectarse a las API utilizando el lenguaje Python.


El lenguaje Python

Python es un lenguaje de alto nivel, orientado a objetos y con una sintaxis simplificada que permite la creación de software para los más variados propósitos. A partir del uso de frameworks tales como Django y Flask, es posible trabajar con desarrollo web, produciendo interfaces completas para integrar a las aplicaciones. El lenguaje también es muy utilizado en proyectos relacionados con ciencia de datos, Machine Learning, automatizaciones, entre otros.


Pycharm

Para realizar este tutorial utilizamos Pycharm, un editor de código muy utilizado por la comunidad para el desarrollo de aplicaciones en Python. Puedes descargar el IDE en este link.

¿Qué es una API?

API significa Application Programming Interface y es, según una definición bien sucinta publicada en el sitio de la empresa Red Hat, un “conjunto de herramientas, definiciones y protocolos para la creación de aplicaciones de software”. Con las APIs es posible ofrecer integraciones para distintos tipos de uso, como el consumo de información o incluso la automatización de procesos, sin renunciar al control del código fuente de la aplicación.

Es decir, otras empresas podrán conectarse y aprovechar servicios que, en otro momento, se desarrollarían internamente, sin mover tantos recursos personales y económicos. El mantenimiento y la seguridad de la tecnología están garantizados por el negocio que ofrece acceso a la solución.

Un buen ejemplo es la API de WhatsApp Business, que permite la integración de otras plataformas al sistema de mensajería, brindando una optimización del trabajo dentro de una empresa que utiliza la herramienta para contactar a los clientes, por ejemplo. Otras soluciones muy utilizadas (y también muy famosas) son las API de Google Maps. Con ellos, es posible insertar recursos relacionados con rutas, mapas y ubicaciones en sitios web y aplicaciones de una forma más simplificada.

La mayoría de estas grandes empresas ofrecen acceso a API con planes pagos, pero hay una serie de interfaces que permiten la integración de forma gratuita para que pruebes y aprendas.


¿Qué son endpoints?

Los endpoints son, básicamente, las direcciones que conectan las APIs a los sistemas que las consumen. A partir de los endpoints se realizan conexiones entre servidores y clientes, enviando y recibiendo información. Para eso, se necesitan una URL y un método, además de elementos esenciales relacionados con los mensajes, tales como título y cuerpo.

Con los métodos, es posivble realizar una serie de operaciones como: GET, que retorna una consulta; POST, que inserta información; PUT y PATH, que actualizan algún dato de forma total o parcial y DELETE, utilizado para excluir alguna información de una base de datos.


Ejemplos de API gratuitas para pruebas

Hay muchas API gratuitas que los desarrolladores pueden usar para aprender a integrar.

Aquí algunos ejemplos:

The Open Movie Database (OMDB) → accede a mucha información sobre películas y series.

New York Times → con esta API, estarás bien informado/a sobre las noticias de todo el mundo.

PokéApi → una API para los fanáticos de Pokémon, con datos completos sobre especies, habilidades, recursos, evoluciones, entre otros temas relacionados.


Consumiendo una API

En este tutorial, utilizaremos la API Astronomy Picture of the Day (APOD) de la NASA, que presenta una imagen diferente del universo cada día. Puedes acceder a él en este enlace. Un detalle importante es que esta API solo permite operaciones del tipo GET, es decir solo consulta de datos.

💡
¿Qué es un archivo .json? Un documento JavaScript Object Notation (JSON) se formatea como texto, conteniendo en su estructura pares de llaves y valores, siendo las llaves los identificadores y los valores los elementos correspondientes a las llaves. Los valores pueden ser de tipo string, boolean, array, object, number y null.


Paso 1: accesando al sitio de la API

Se requiere autenticación para conectarse a la API de APOD, por lo que debe registrarse de forma rápida y gratuita para recibir un API Key, es decir, una llave que habilita el acceso. También existe la posibilidad de utilizar lo que llaman de DEMO KEY, una API Key para que verifique algunas características de la API antes de registrarte.

Copia la API Key recebida no e-mail e insira ela no espaço indicado na URL: https://api.nasa.gov/planetary/apod?api_key= {INSIRA_SUA_APIKEY_AQUI}. Depois de inserir, você pode copiar e colar o endereço no seu navegador e conferir os campos e informações que a API oferece. Guarde esta URL para usarmos no código posteriormente.


Paso 2: creando un ambiente virtual

Para instalar tus dependencias de forma específica para este proyecto, crearemos un ambiente virtual con el modo virtualenv. Abre el prompt de comando y escribe: pip install virtualenv.

💡
En caso de que aparezca el error “’pip’ no es reconocido como un comando interno o externo, un programa operable o un archivo en lotes”, verifica si está instalado (ve a la carpeta Scripts en la carpeta de origen de instalación de Python y cerciórate de si el ejecutable pip.exe está en esta carpeta).

Si lo está, agrégalo en las variables de ambiente siguiendo este paso: ve al Explorador de Archivos y aprieta el botón derecho del mouse en Este computador. Elige la opción Configuraciones avanzadas de sistema, haz clic en la opción Avanzado y después en Variables de ambiente. Después, selecciona la variable Path y luego Editar. Haz clic en Nuevo y añade la ruta de la carpeta Scripts. Reinicia el prompt de comando.


Crea el ambiente virtual con el comando: virtualenv nome_da_<~virtualenv~> y actívalo con el comando nome_da_virtualenv/Scripts/Activate. Recuerda que estos comandos son válidos para Windows, el sistema operativo utilizado para la creación de este tutorial. Para desactivar, utiliza el comando deactivate.

Paso 3: creando el proyecto

En el menú superior de PyCharm, selecciona File y luego Open para abrir la carpeta donde fue creado tu ambiente virtual. En esta carpeta, crea un archivo Python. Para este proyecto, creamos app.py.

Paso 4: importando el módulo requests

Instala la biblioteca requests para realizar las requisiciones en los endpoints de la API utilizando Python. En el prompt de comando, aún en tu ambiente virtual, digita pip install requests y aprieta enter. Ten en cuenta que paquete no será instalado de forma global, pues trabajamos en un ambiente específico.

En tu archivo app.py, importa el request con el siguiente código:

import requests

Paso 5: almacenando la URL en una variable

Ahora, almacena la URL que guardaste anteriormente, en la que insertaste la clave API recibida en una variable. En nuestro código, la llamamos api_url.

import requests

api_url = "https://api.nasa.gov/planetary/apod?api_key={INSIRA_SUA_APIKEY_AQUI}"

💡
Recuerda remover las llaves ( { } ) que agregamos en los espacios donde había indicación para insertar información, como en la variable api_url.


Paso 6: almacenando la requisición en una variable

En este momento, crea una variable para almacenar la requisición, GET(), que haremos para el acceso a los datos suministrados por la API, conforme a lo indicado en el fragmento de código abajo. El parámetro insertado en este método será justamente la URL.

import requests

api_url = "https://api.nasa.gov/planetary/apod?api_key={INSIRA_SUA_APIKEY_AQUI}"

request = requests.get(api_url)

Paso 7: hacer un if para continuar la operación solamente si el status fuera 200

Antes de continuar, necesitamos hablar sobre los códigos HTTP que se pueden devolver cuando intentamos hacer conexiones con las API.Según la plataforma MDN Web Docs, los valores posibles son:

100 - 199 → respuestas de información.

200 - 299 → respuestas de éxito.

300 - 399 → redireccionamiento.

400 - 499 → errores del cliente.

500 - 599 → errores del servidor.

Sabiendo esto, haz un if para que la aplicación continúe su funcionamiento si el estado devuelto es 200, es decir, la solicitud fue exitosa. Dentro de este if, almacena los datos guardados en la variable request, en el formato .json, en la variable datos.

import requests

api_url = "https://api.nasa.gov/planetary/apod?api_key={INSIRA_SUA_APIKEY_AQUI}"

request = requests.get(api_url)

if request.status_code == 200:

dados = request.json()


Ahora, puedes usar el comando print(dados.text) para comprobar todos los datos devueltos por la API. Si el mensaje en el terminal es diferente al formato esperado, revisa los pasos anteriores. El 31/03/2023, cuando finalizó este tutorial, la información que debía devolverse era:

{'date': '2023-03-31', 'explanation': "Shrouded in a thick atmosphere, Saturn's largest moon Titan really is hard to see. Small particles s.

Paso 8: accediendo la información devuelta por la API de forma individual

Ahora que estás accediendo a todos los datos, separa la información que deseas y guárdala en variables específicas.

import requests

api_url = "https://api.nasa.gov/planetary/apod?api_key={INSIRA_SUA_APIKEY_AQUI}"

request = requests.get(api_url)

if request.status_code == 200:

dados = request.json()

data = dados['date']

explicacao = dados['explanation']

url = dados['url']

titulo = dados['title']


Ten en cuenta que, después de hacer esto, si le damos un print() en cada una de las variables, los datos serán devueltos individualmente:

print(url)

Es importante señalar que los campos se pueden cambiar con cada solicitud. Por ejemplo: en la solicitud realizada el 30/03/2023, el campo copyright era devuelto con el nombre de quien poseía derechos de autor sobre la imagen.

Sin embargo, el 31/03/2023, este campo ya no estaba en el mensaje de respuesta de la API. Para asegurarte de acceder a todos los campos que deseas, haz un print() en la variable que almacena todos los datos. En el caso de nuestro código, la variable datos. De esta forma, puedes consultar los campos devueltos y acceder a los que desees.


Extra

Es posible realizar integraciones con interfaces creadas en HTML a partir de librerías como pyscript, y mostrar los datos directamente en tu página web. ¡Consulta la documentación oficial en este link y haz la prueba!

En este artículo, presentamos una forma de consumir una API usando Python y mostrar los datos devueltos en la propia terminal.

¡Éxito!

💡
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.