top of page

Se connecter à une API avec Python

  • Writer: MYPE SAS
    MYPE SAS
  • Jul 17
  • 4 min read

Les APIs


Les APIs (Application Programming Interfaces, ou interfaces de programmation d’applications) sont des points d’échange d’informations entre deux logiciels ou systèmes. Les APIs permettent par exemple à un développeur codant un programme, d’y incorporer des requêtes sur une application ou sur une base de données hébergée ailleurs. Grâce à une API, on peut exécuter des requêtes sur une application, sans la recoder en entier, ni même connaître son fonctionnement interne.


Il existe plusieurs types d’APIs, dont voici les plus courants :

  • Les APIs REST sont les plus simples. Elles sont très utilisées. Pour les utiliser, on utilise des requêtes HTTP avec la bibliothèque requests.

  • Les APIs GraphQL nécessitent un body JSON, en plus d’une requête POST avec requests.

  • Les APIs JSON-RPC sont utilisables de la même façon que les APIs GraphQL.

  • Les APIs SOAP n’utilisent pas les requêtes HTTP, mais reposent sur des fichiers XML et un fichier WSDL. Il vaut mieux utiliser la bibliothèque Python zeep pour les interroger.


Si vous souhaitez vous former aux APIs avec nos formateurs en CDI, n’hésitez pas à vous inscrire à nos formations Python à Paris, sur notre site expertpython.fr.


Requêtes HTTP


La bibliothèque Python requests permet d’interagir avec les APIs compatibles (en premier lieu les APIs REST), à l’aide de requêtes HTTP. Voici les requêtes HTTP les plus courantes, et les fonctions correspondantes dans la bibliothèque requests :


  • GET > requests.get()

Permet de lire et récupérer des données depuis un serveur.

Exemple :

response = requests.get("https://api.example.com/users/john-doe")

              Obtient les informations de l’utilisateur John Doe.

Permet de créer une ressource en envoyant des données vers un serveur.

Exemple :

data = {"name": "Alice", "email": "alice@example.com"}

              Crée un nouvel utilisateur.

  • PUT > requests.put()

Permet de mettre-à-jour une ressource existante.

Exemple :

data = {"name": "Alice", "email": "new@example.com"}

response = requests.put("https://api.example.com/users/alice", json=data)

              Met-à-jour les informations de l’utilisateur Alice.

  • DELETE > requests.delete()

Permet de supprimer une ressource du serveur.

Exemple :

response = requests.delete("https://api.example.com/users/alice")

              Supprime l’utilisateur Alice.


Tutoriel d’interaction avec une API


Dans cet exemple, on va créer un projet Python, et intégrer dedans des requêtes sur l’API d’une base de données de l’INSEE nommée « Indices des prix à la consommation, correction des valeurs saisonnières, inflation sous-jacente », dont voici le lien :

Cette base de données contient les indices des prix à la consommation (IPC), ainsi que certains IPC corrigés (des variations saisonnières et de l’inflation), publiés mensuellement sur 35 ans.


Etape 1 : Création et set-up du projet Python


Tout d’abord, créons un projet Python. Plusieurs solutions sont possibles (PyCharm, Jupyter Notebook, Pyzo…). Dans ce tutoriel, on utilisera PyCharm.

On sélectionne le dossier de création du projet, et on clique sur le bouton ‘virtual environment’ (venv) :

ree

Ensuite, on fait un clic droit sur le dossier que l’on vient de créer, et on crée un fichier python, qu’on nomme « api.py ».

ree

Voici le fichier python « api.py » vierge :

ree

Maintenant, téléchargeons les bibliothèques Python dont nous aurons besoin dans ce projet : on utilisera la bibliothèque requests pour interagir avec l’API, et la bibliothèque pandas pour organiser les résultats des requêtes en dataframes.

Pour ce faire, on ouvre un terminal à l’aide du bouton dans le panneau de gauche sur PyCharm :

ree

Puis, on tape l’instruction suivante :

ree

Etape 2 : Importer l’API


On commence par analyser la structure et le contenu de la base de données qu’on va interroger. Pour ce faire, on va sur la vue « Tableau » de la page :

ree

Dans l’onglet « API » du même site, on trouve un aperçu des données qui seront envoyées au format JSON par l’API, lorsqu’on l’interrogera. On trouve aussi l’information principale : l’URL permettant d’appeler l’API.

ree
ree

Sur le lien suivant, on trouve la liste des ‘facets’, c’est-à-dire des colonnes de la base de données sur lesquelles on peut faire du filtrage :


Grâce à toutes ces informations, on peut commencer notre projet python. Tout d’abord, on réalise les imports des bibliothèques Python, et on crée une variable pour contenir l’URL de l’API et le nom de la base de données :

ree

Etape 3 : Code de notre application


Maintenant, on code une fonction qui va effectuer un GET et récupérer les données renvoyées par l’API. On choisit de filtrer par année, zone géographique, secteur, type, sous_type, base de calcul et population. Les valeurs par défaut permettent de ne pas spécifier toutes les valeurs à chaque fois.

ree

Ensuite, on convertit les résultats de la requête GET en dataframe pandas, avec la fonction suivante :

ree

Enfin, dans la fonction « main() », on utilise les fonctions créées plus haut pour mettre en place une logique de filtrage interactif : dans la console, l’utilisateur pourra taper des valeurs pour l’année, la zone géographique ou le secteur, afin de filtrer la base de données. Le résultat de l’exécution de notre application est l’affichage des 10 premières lignes d’un dataframe pandas.

ree

Voici un exemple d’exécution de l’application python :

ree

--

Retrouvez d'autres contenus, et toutes nos formations sur : https://www.expertpython.fr/

 
 
 

Comentarios


Un formateur vous rappelle dans les 24h

Contact Expert Python

Laissez-nous vos coordonnées pour être rappelé dans les 24h.

bottom of page