Conclusions finales

Introduction aux API en Python

Chris Ramakers

Engineering Manager

Bases sur les API

  • Le rôle des API
  • Différents types d’API
  • Composants d’URL
  • Anatomie messages de requête et réponse
  • Verbes HTTP

Introduction aux API en Python

API avec Python

Package de requêtes

import requests

Méthodes HTTP

# Read a resource
requests.get('https://api.my-music.com')
# Create a resource
requests.post('https://api.my-music.com', data={...})
# Update a resource
requests.put('https://api.my-music.com', data={...})
# Delete a resource
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 de base
      headers = {'Authorization':'Basic am9obkBleGF...'}
      
    • Authentification par clé API/token
      headers = {'Authorization': 'Bearer faaa1c9f4...'}
      
  • Données structurées
    • Demande données format JSON
      requests.get('https://api.my-music.com', headers={'accept': 'application/json'})
      
    • Envoi données 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

  • Catégories d'erreurs
    • Erreurs connexion
    • Erreurs HTTP
      • 4XX Erreurs client
      • 5XX Erreurs serveur
  • Gestion erreurs avec codes d’état
    • response.status_code
  • Gestion erreurs avec 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...