A tu propio ritmo

Explora nuestra extensa colección de cursos diseñados para ayudarte a dominar varios temas y habilidades. Ya seas un principiante o un aprendiz avanzado, aquí hay algo para todos.

Bootcamp

Aprende en vivo

Únete a nosotros en nuestros talleres gratuitos, webinars y otros eventos para aprender más sobre nuestros programas y comenzar tu camino para convertirte en desarrollador.

Próximos eventos en vivo

Catálogo de contenidos

Para los geeks autodidactas, este es nuestro extenso catálogo de contenido con todos los materiales y tutoriales que hemos desarrollado hasta el día de hoy.

Tiene sentido comenzar a aprender leyendo y viendo videos sobre los fundamentos y cómo funcionan las cosas.

Full-Stack Software Developer - 16w

Data Science and Machine Learning - 16 wks

Buscar en lecciones


IngresarEmpezar

Weekly Coding Challenge

Todas las semanas escogemos un proyecto de la vida real para que construyas tu portafolio y te prepares para conseguir un trabajo. Todos nuestros proyectos están construidos con ChatGPT como co-pilot!

Únete al reto

Podcast: Code Sets You Free

Un podcast de cultura tecnológica donde aprenderás a luchar contra los enemigos que te bloquean en tu camino para convertirte en un profesional exitoso en tecnología.

Escuchar el podcast
← Volver a Cómo hacerlo
Editar en Github

¿Cómo consumir una API en Python?

Escrito por:

¿Cómo consumir una API en Python usando requests?

En el mundo del desarrollo moderno es muy común hacer uso de una API (Application Programming Interface) para conectarse a servicios de terceros. Por ejemplo, si estas creando una aplicación donde necesitas rastrear la ubicación de los usuarios, en lugar de escribir todo el código necesario para eso, puedes simplemente hacer uso de la API de google maps.

En este artículo veremos cómo consumir una API en Python con ayuda de la librería Requests. En el siguiente ejemplo veremos un caso sencillo de una petición GET a la API gratuita de jsonplaceholder.

Para poder hacer uso de la librería Requests primero debemos instalarla en nuestro ordenador, para eso puedes utilizar el siguiente comando:

1pip install requests

Una vez instalada, ya podemos usarla en nuestro código para hacer pedidos HTTP, en este caso, un pedido GET de un usuario de ejemplo.

1import requests 2 3URL = "https://jsonplaceholder.typicode.com/users/1" 4response = requests.get(URL) 5 6if response.status_code == 200: 7 print('Solicitud exitosa') 8 print('Data:', response.json()) 9else: 10 print('Error en la solicitud, detalles:', response.text)

output del código:

1Solicitud exitosa 2Data: { 3 "id": 1, 4 "name": "Leanne Graham", 5 "username": "Bret", 6 "email": "Sincere@april.biz", 7 "address": { 8 "street": "Kulas Light", 9 "suite": "Apt. 556", 10 "city": "Gwenborough", 11 "zipcode": "92998-3874", 12 "geo": { 13 "lat": "-37.3159", 14 "lng": "81.1496" 15 } 16 }, 17 "phone": "1-770-736-8031 x56442", 18 "website": "hildegard.org", 19 "company": { 20 "name": "Romaguera-Crona", 21 "catchPhrase": "Multi-layered client-server neural-net", 22 "bs": "harness real-time e-markets" 23 } 24}

En este ejemplo, hacemos uso del método get(api_url) de la librería requests para traer la información de de un usuario falso proporcionada por la API de jsonplacehorder, este método retorna la información recibida desde la API y se guarda en la variable response. Si la solicitud fue exitosa la petición retorna un status_code de 2XX (Entre 200 y 299) y la información del usuario, pero si ocurrió algún error en la proceso retorna un status_code de 4XX (Entre 400 y 499) y un mensaje con el motivo del error.

¿Qué es una API en Python?

Las APIs son mecanismos que permiten a dos componentes de software comunicarse entre sí mediante un conjunto de definiciones y protocolos. En el contexto de la programación, una API se utiliza para acceder a funciones y datos de una aplicación externa. En Python, las APIs son una forma común de obtener y manipular datos desde servicios en línea, como servicios web, bases de datos y otros recursos externos.

Un ejemplo común de una API sería la api del clima que te brinda información básica sobre el clima de cualquier ciudad o país, si necesitas realizar una aplicación que requiera información sobre el clima de cualquier parte del mundo, puedes hacer uso de esta API a través de protocolos HTTP para conseguir esa información y poder usarla directamente en tu aplicación.

¿Cómo consumir una API?

A continuación veremos algunos ejemplos sobre cómo consumir una API en Python con la ayuda de la librería Requests de Python y la API gratuita de jsonplaceholder que proporciona datos simulados, para esto necesitas instalar esta la librería de requests en tu ordenador, puedes instalarla con el siguiente comando:

1pip install requests

Esta librería te permite acceder a la información obtenida desde una API de una forma muy sencilla, estos son algunos de los métodos y propiedades más comunes para acceder a la información que retornan las peticiones:

PropiedadDescripción
response.status_codeContiene el código de status de la petición, ejemplo: 201
response.urlContiene la URL de la petición.
response.headersProporciona los headers de la petición.
response.cookiesProporciona las cookies de la petición.
response.encodingContiene la codificación de la petición, ejemplo: utf-8.
response.json()Guarda la información que viene desde la API, por ejemplo, en la API del clima, una lista de diccionarios con la información de las ciudades.

Nota importante, las peticiones a la API de jsonplaceholder sólo simulan el comportamiento de una API real, no todas las peticiones son funcionales, por ejemplo, si hacer una petición de tipo POST la API de jsonplaceholder la información NO se guardará en los servidores de la API pero la API te responde con un mensaje que simula que si.

Ejemplo con la solicitud GET

Las solicitudes de tipo GET se utilizan para traer información de un servidor.

1import requests 2 3URL = "https://jsonplaceholder.typicode.com/posts/1" 4response = requests.get(URL) 5 6if response.status_code == 200: 7 data = response.json() 8 9 print('Solicitud exitosa') 10 print('Data:', data) 11else: 12 print('Error en la solicitud, detalles:', response.text)

output del código:

1Solicitud exitosa 2Data: { 3 'userId': 1, 4 'id': 1, 5 'title': 'sunt aut facere repellat provident occaecati excepturi optio reprehenderit', 6 'body': 'quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto' 7}

En este ejemplo, hacemos uso del método get() de la librería requests para traer la información de un post simulado por la API de jsonplaceholder, esta información será guardada en la variable response, luego con un condicional if else verificamos si la petición a la API se realizó de forma correcta, de ser así mostramos la información en la consola, de lo contrario imprimimos un mensaje con el error.

Ejemplo con la solicitud POST

Las solicitudes de tipo POST se utilizan para enviar datos al servidor.

1import requests 2 3URL = "https://jsonplaceholder.typicode.com/posts" 4DATA = { 5 "title": "Título del ejemplo", 6 "body": "Contenido de un nuevo post", 7 "userId": 1 8} 9 10response = requests.post(URL, json=DATA) 11 12if response.status_code == 201: 13 data = response.json() 14 15 print('Post creado de forma exitosa') 16 print('Respuesta:', data) 17else: 18 print('Error en la solicitud, detalles:', response.text)

output del código:

1Post creado de forma exitosa 2Respuesta: { 3 'title': 'Título del ejemplo', 4 'body': 'Contenido de un nuevo post', 5 'userId': 1, 6 'id': 101 7}

En este ejemplo, hacemos uso del método post() de la librería requests para crear un nuevo objeto en el servidor, el método post() recibe dos parámetros, el primero es la URL de la API y el segundo es la información del objeto que queremos crear dentro de un diccionario.

Ejemplo con la solicitud PUT

Las solicitudes de tipo PUT se utilizan para actualizar datos en el servidor.

1import requests 2 3URL = "https://jsonplaceholder.typicode.com/posts/1" 4DATA = { 5 "title": "Título actualizado", 6 "userId": 2 7} 8 9response = requests.put(URL, json=DATA) 10 11if response.status_code == 200: 12 data = response.json() 13 14 print('Post actualizado de forma exitosa') 15 print('Respuesta:', data) 16else: 17 print('Error en la solicitud, detalles:', response.text)

output del código:

1Post actualizado de forma exitosa 2Respuesta: { 3 'title': 'Título actualizado', 4 'userId': 2, 5 'id': 1 6}

Para hacer una solicitud de tipo PUT debemos hacer uso del método put() de la librería de requests, este método también recibe dos parámetros, el primero es la URL que le indica a la API el objeto en particular que deseas actualizar y el segundo parámetro es la información con la que deseas actualizar el objeto.

Ejemplo con la solicitud DELETE

Las solicitudes de tipo DELETE se utilizan para eliminar datos en el servidor.

1import requests 2 3URL = "https://jsonplaceholder.typicode.com/posts/1" 4response = requests.delete(URL) 5 6if response.status_code == 200: 7 print('Post eliminado de forma exitosa.') 8else: 9 print('Error en la solicitud, detalles:', response.text)

output del código:

1Post eliminado de forma exitosa.

Para realizar una solicitud de tipo DELETE en Python debemos hacer uso del método delete() de la librería requests, este método recibe como parámetro la URL que le indica a el servidor de la API el objeto en particular que deseas eliminar, normalmente las APIs retornan un mensaje que nos indica si el objeto se eliminó de forma correcta o no pero la API de jsonplaceholder no retorna un mensaje en particular solo retorna un status_code de 200.

Conclusión

Las APIs desempeñan un papel fundamental en la integración de aplicaciones y el intercambio de datos en el mundo del desarrollo de software. En Python la librería Requests nos permite interactuar con las APIs de una forma sencilla e intuitiva, en este artículo aprendimos como hacer uso de esta librería para hacer peticiones HTTP y así obtener, crear, actualizar o eliminar información en una API, ahora ya estás listo/a para consumir una API de forma correcta y hacer uso de sus funcionalidades en tus propias aplicaciones.