Hacer una llamada API con token en Python

Oluwafisayo Oluwatayo 15 febrero 2024
  1. Hacer una llamada a la API sin token en Python
  2. Hacer una llamada API con token en Python
  3. Conclusión
Hacer una llamada API con token en Python

Cuando nos encontramos por primera vez con la pregunta de cómo llamar a una API en Python, nuestro primer pensamiento fue “¿qué es una API?”.

Una API es un acrónimo de Interfaz de programación de aplicaciones; le permite acceder a los datos del software sin necesariamente acceder a ellos. Por ejemplo, si se llama a una API de criptomonedas, obtendremos acceso a los precios de las criptomonedas directamente en nuestra aplicación sin visitar el sitio web o la aplicación de criptomonedas.

Cuando llamamos a una API en Python, podemos hacerlo con token, y sin token, cuando lo hacemos sin token, la API no es segura, pero en el caso de usar tokens, sirve como contraseña y nombre de usuario para acceder a los tokens.

Veremos ejemplos de ambos casos.

Hacer una llamada a la API sin token en Python

Para comenzar, primero necesitaremos instalar una biblioteca de Python para manejar esta solicitud; dentro de la terminal, escriba solicitudes de instalación de pip, cree un nuevo archivo y asígnele el nombre nuevo.py. Luego ingresaremos estos códigos:

nuevo.py:

import requests
import json


class MakeApiCall:
    def get_data(self, api):
        response = requests.get(f"{api}")
        if response.status_code == 200:
            print("call successful")
            self.formatted_print(response.json())
        else:
            print(f"error {response.status_code} in fetching request")

    def get_user_data(self, api, parameters):
        response = requests.get(f"{api}", params=parameters)
        if response.status_code == 200:
            print("data fetch success")
            self.formatted_print(response.json())
        else:
            print(f"error {response.status_code} in fetching request")

    def formatted_print(self, obj):
        text = json.dumps(obj, sort_keys=True, indent=4)
        print(text)

    def __init__(self, api):
        parameters = {"site": "stackoverflow"}
        self.get_user_data(api, parameters)


if __name__ == "__main__":
    api_call = MakeApiCall("https://api.stackexchange.com/2.2/info")

El primer fragmento maneja la llamada; una vez que la llamada es exitosa, imprime el resultado, luego, una vez que los datos se han obtenido con éxito, imprime el resultado; de lo contrario, imprime el error, luego debe imprimir los datos que se obtienen de la API.

Luego, la última línea es el enlace API desde el cual estamos obteniendo los datos. Una vez que haga clic en ejecutar, espere unos momentos y verá los datos obtenidos dentro de la terminal.

Hacer una llamada a la API sin token en Python

Hacer una llamada API con token en Python

Como mencionamos, hacer API con tokens significa que hacemos una conexión segura a la API a la que intentamos acceder. Necesitamos instalar algunas dependencias de pip.

Primero necesitaremos generar un token e implementar jwt para eso. Dentro de la terminal, escribe pip install jwt.

Abra un nuevo archivo, asígnele el nombre jwt.py y escriba el código siguiente para generar un token.

jwt.py:

import jwt

encoded_jwt = jwt.encode({"some": "payload"}, "secret", algorithm="HS256")
print(encoded_jwt)

A continuación, instalaremos solicitudes para gestionar las solicitudes de llamadas a la API. Escribiremos solicitudes de instalación de pip dentro de la terminal.

Luego creamos un archivo, lo llamamos nuevo.py y escribimos estos códigos:

nuevo.py:

import requests

BASE_URL = "https://www.boredapi.com/api/activity"
token = "your jwt token"

headers = {"Authorization": "Bearer {}".format(token)}
auth_response = requests.get(BASE_URL, headers=headers)

print(auth_response.json())

Haga clic en ejecutar y verá los datos obtenidos de la API dentro de la terminal.

Hacer una llamada API con token en Python

Conclusión

Idealmente, cuando queramos hacer un proyecto más serio, deberíamos llamar a la API con un token para mayor protección. Si bien jwt ofrece una forma sencilla de generar tokens, existen otras formas en las que podemos generar tokens.

Oluwafisayo Oluwatayo avatar Oluwafisayo Oluwatayo avatar

Fisayo is a tech expert and enthusiast who loves to solve problems, seek new challenges and aim to spread the knowledge of what she has learned across the globe.

LinkedIn

Artículo relacionado - Python Requests