Dernières réflexions

Introduction aux API en Python

Chris Ramakers

Engineering Manager

Bases des API

  • Rôle des API
  • Différents types d’API
  • Composants d’une URL
  • Anatomie des requêtes et réponses
  • Verbes HTTP

Introduction aux API en Python

APIs avec Python

Package Requests

import requests

Méthodes HTTP

# Lire une ressource
requests.get('https://api.my-music.com')
# Créer une ressource
requests.post('https://api.my-music.com', data={...})
# Mettre à jour une ressource
requests.put('https://api.my-music.com', data={...})
# Supprimer une ressource
requests.delete('https://api.my-music.com')

Paramètres d’URL

query_params = {'artist': 'Deep Purple'}
requests.get('http://api.my-music.com', params=query_params)

En-têtes

headers = {'accept': 'application/json'}
response = requests.get('http://api.my-music.com', headers=headers)
print(response.headers.get('content-type'))

Codes d’état

response = requests.get('http://api.my-music.com')
print(response.status_code)
Introduction aux API en Python

Sujets avancés

  • Authentification
    • Authentification Basic
      headers = {'Authorization':'Basic am9obkBleGF...'}
      
    • Clé/jeton d’API
      headers = {'Authorization': 'Bearer faaa1c9f4...'}
      
  • Données structurées
    • Demander des données au format JSON
      requests.get('https://api.my-music.com', headers={'accept': 'application/json'})
      
    • Envoyer des données au format JSON
      playlists = [{"Name":"My favorite songs"}, {"Name":"Road Trip"}]
      requests.post('https://api.my-music.com/playlists/', json=playlists)
      
Introduction aux API en Python

Gestion des erreurs

  • Types d’erreurs
    • Erreurs de connexion
    • Erreurs HTTP
      • 4XX Erreurs client
      • 5XX Erreurs serveur
  • Gérer les erreurs via les codes d’état
    • response.status_code
  • Gérer les erreurs via les exceptions
    • raise_for_error()
import requests
from requests.exceptions import ConnectionError, HTTPError

try:
    response = requests.get("http://api.music-catalog.com/albums") 
    response.raise_for_status()

except ConnectionError as conn_err: 
    print(f'Connection Error! {conn_err}.')

except HTTPError as http_err:
    print(f'HTTP error occurred: {http_err}')
Introduction aux API en Python

Félicitations !

Introduction aux API en Python

Preparing Video For Download...