En-têtes et codes d’état

Introduction aux API en Python

Chris Ramakers

Engineering Manager

Anatomie d’un message requête/réponse

Exemple d’une requête et d’une réponse. Requête : GET /users/42 avec en-têtes. Réponse : 200 OK avec un corps JSON contenant les infos utilisateur.

Introduction aux API en Python

La start-line

Exemple des trois parties d’une requête ou réponse, avec la ligne de départ en surbrillance

  • Un serveur inclut toujours un code d’état numérique dans la réponse
Introduction aux API en Python

Codes d’état

Catégories de codes d’état

  • 1XX : Réponses d’information
  • 2XX : Réponses réussies
  • 3XX : Redirections
  • 4XX : Erreurs client
  • 5XX : Erreurs serveur

Codes d’état fréquents

  • 200 : OK
  • 404 : Not Found
  • 500 : Internal Server Error
1 Pour la liste complète des codes de réponse, voir la page MDN sur les codes d’état : https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
Introduction aux API en Python

En-têtes

Exemple des trois parties d’une requête ou réponse, avec les en-têtes en surbrillance

key1: Value 1
key2: Value 2
Introduction aux API en Python

Exemple : négociation de contenu via les en-têtes

Exemple des trois parties d’une requête ou réponse, avec les en-têtes en surbrillance

  • Le client ajoute un en-tête accept: application/json à la requête
  • Le serveur répond avec un en-tête content-type: application/json
Introduction aux API en Python

En-têtes avec requests

# Adding headers to a request
response = requests.get(
  'https://api.datacamp.com', 
  headers={'accept':'application/json'}
)
# Reading response headers
response.headers['content-type']
'application/json'
response.headers.get('content-type')
'application/json'
Introduction aux API en Python

Codes d’état avec requests

# Accessing the status code
response = requests.get('https://api.datacamp.com/users/12')

response.status_code == 200
True
# Looking up status codes using requests.codes
response = requests.get('https://api.datacamp.com/this/is/the/wrong/path')

response.status_code == requests.codes.not_found
True
Introduction aux API en Python

Passons à la pratique !

Introduction aux API en Python

Preparing Video For Download...