Ressources Magic Makers

 

Site en maintenance

 
Nous sommes actuellement entrain de mettre à jour les ressources de ce site.
Pendant la mise à jour vous pouvez retrouver tous les nouveaux contenus sur le site
 

https://lp-magicmakers.fr/

 
 

Appel de base

Un appel d’API sur python ce fait de la même manier que les requêtes vues dans la page Ressource sur requests. Il faut simplement faire une requête GET. La réponse va être très souvent sous la forme d’un fichier json, donc pour utiliser la donnée dans python il faut utiliser la méthode json() de la réponse :

import requests
url = "https://dog.ceo/api/breeds/image/random"
reponse = requests.get(url)
donnee = reponse.json()

Les donnée sont ensuite sous la forme d’un dictionnaire, pour voire comment manipuler un dictionaire, regardez la Ressource python dictionnaire.

Appel avec des paramètres

Pour effectuer un appel API avec des paramètres, on va utiliser un paramètre de plus quand on appelle la fonction “get” de requests:

#L'appel ce fait ici
reponse = requests.get(url, params=parametres)

Exemple :

On va prendre l’exemple d’une API qui donne des faits aléatoires sur les chats :

On a déjà vu qu’il faut copier le lien de l’API dans le code. Ensuite, en regardant dans la documentation donner par les créateurs de l’API, on voit qu’il est possible de limiter la longueur du fait. Dans ce cas, le paramètre s’appelle max_length. Les paramètres sont stockés dans un dictionnaire. Pour modifier la valeur du paramètre max_length, il faut le faire de la manière suivante :

parametres = {"max_length":50}

Si on fait l’appel de l’API, on va voir que le fait donner sera toujours moins de 50 caractères de long.

#Interagire avec les API
import requests

#L'URL de l'API
url = "https://catfact.ninja/fact"
#Les parametres de l'appel
parametres = {"max_length":50}

#L'appel ce fait ici
reponse = requests.get(url, params=parametres)

#Transfomer le fichier json en donnee qui peux etre manipuler dans python
donnee = reponse.json()  

print(donnee)

Le code ci-dessus utilise l’API des faits de chat pour trouver un fait aléatoire de chat avec le fait étant moins de 50 caractères de long.

Appel avec une clé

Il y a des API qui ont décidé de faire des restrictions pour que les utilisateurs de l’API ne puissent pas faire plus qu’un certain nombre d’appels par minute. Pour faire la différence entre chaque utilisateur, l’API va créer des clés. Donc pour utiliser l’API il faudra donner ta clé avant de faire ta demande pour que l’API sache combien d’appel tu as déjà fait.

Pour effectuer un appel d’API avec une clé, on va utiliser le parametre headers quand on appelle l’API :

#L'appel ce fait ici
reponse = requests.get(url,headers=headers)

Comme pour les paramètres, les headers vont être sous forme de dictionnaire. Le format du dictionnaire va être différent pour chaque API, alors il faut lire la documentation.

Exemple :

On va prendre l’exemple d’une API des Seigneurs des Anneaux.

Pour avoir la clé, il faut aller sur leur site, créé un compte, puis copier la clé donnée. Ensuite, dans la documentation de l’API on trouve que le format du header doit être sous la forme suivante :

headers = {"Authorization": "Bearer FnGhs697sMgQR4KFCH"}

#Interagire avec les API
import requests

url = "https://the-one-api.dev/v2/character"
#On utilise Gandalf comme parametre
parametres = {"name":"Gandalf"}
#On met notre token dans le headers
headers = {"Authorization": "Bearer FnGhs697sMgQR4KFCH"}


reponse = requests.get(url, headers=headers, params=parametres)

information_Gandalf = reponse.json()

print(information_Gandalf)

Le code ci-dessus on utilise l’API des Seigneurs des Anneaux pour trouver toutes les informations sur Gandalf. (Pour utiliser ce code il faut créer son propre token ici)

Appel API POST (avancer) :

Dans la grande majorité des cas, on ne va qu’utiliser la fonction GET. Mais il est possible que pour faire un appel, il faut faire un POST. La différence entre GET et POST est que POST envoi des informations au serveur, alors que GET ne fait qu’une demande. C’est comme si dans un cas, on pose une question (GET) et dans l’autre on donne une feuille d’exercice à résoudre (POST).

Souvent un POST est utilisé pour envoyer de l’information qui va être traité par le serveur puis renvoyer. Les API de traduction utilisent POST : on envoie une phrase au serveur, puis on le reçoit traduit. 

Pour faire un appel avec POST il faut regarder précisément la documentation de l’API pour voir la mise en forme précise de la donnée que tu veux envoyer et sous quel format l’API réclames la donnée (texte ou json).