Fondamentaux des API REST pour les développeurs d’agents
Méthodes HTTP, codes d’état, en-têtes et format des requêtes et réponses JSON.
Fondamentaux des API REST pour les développeurs d’agents est une leçon AI Agents gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage AI Agents, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours AI Agents comprend 4 leçons au total.
Qu'est-ce qu'une requête HTTP ?
Tout agent qui se connecte à un service externe utilise HTTP — le langage du Web. Une requête HTTP comporte trois éléments essentiels : une méthode, une URL, ainsi que des en-têtes et un corps facultatifs.
Considérez la méthode comme un verbe indiquant au serveur ce que vous souhaitez faire, et l'URL comme l'adresse de la ressource.
import requests
# A simple GET request to a public API
response = requests.get('https://api.example.com/users')
print(response.status_code) # 200
print(response.text) # raw JSON stringGET — Récupérer des données
GET récupère des données depuis un serveur. Il ne doit jamais rien modifier. Les agents utilisent GET pour lire des profils utilisateur, récupérer des listes de tâches ou obtenir des données de configuration.
Vous pouvez transmettre des paramètres dans l'URL sous forme de chaîne de requête à l'aide de l'argument params.
import requests
# Fetch users filtered by role
params = {'role': 'admin', 'page': 1, 'limit': 10}
response = requests.get(
'https://api.example.com/users',
params=params
)
# URL becomes: /users?role=admin&page=1&limit=10
data = response.json()
print(data['users'])POST — Créer des ressources
POST envoie des données au serveur pour créer une ressource. Les agents utilisent POST pour envoyer des tâches, transmettre des messages ou déclencher des actions. Les données sont placées dans le corps de la requête au format JSON.
Définissez toujours l'en-tête Content-Type: application/json — la plupart des API l'exigent.
import requests
import json
payload = {
'title': 'Research competitors',
'assignee': 'agent-001',
'priority': 'high'
}
response = requests.post(
'https://api.example.com/tasks',
json=payload # sets Content-Type automatically
)
print(response.status_code) # 201 Created
new_task = response.json()
print('Created task ID:', new_task['id'])PUT et PATCH — Mettre à jour des données
PUT remplace une ressource entière par de nouvelles données. PATCH ne met à jour que certains champs. Les agents utilisent PUT lorsqu'ils disposent de l'objet complet mis à jour, et PATCH pour les modifications partielles, comme la mise à jour de l'état d'une tâche.
import requests
task_id = '42'
# PATCH: only update the status field
response = requests.patch(
f'https://api.example.com/tasks/{task_id}',
json={'status': 'completed'}
)
print(response.status_code) # 200
# PUT: replace the whole task object
full_task = {
'title': 'Research competitors',
'assignee': 'agent-001',
'priority': 'low',
'status': 'completed'
}
response = requests.put(
f'https://api.example.com/tasks/{task_id}',
json=full_task
)
print(response.status_code) # 200DELETE — Supprimer des ressources
DELETE supprime une ressource du serveur. Les agents utilisent DELETE pour nettoyer des données temporaires, supprimer des tâches traitées ou annuler des tâches planifiées. La plupart des requêtes DELETE n'ont pas de corps.
Une opération delete réussie renvoie généralement 204 No Content — la réponse ne contient aucun corps.
import requests
task_id = '42'
response = requests.delete(
f'https://api.example.com/tasks/{task_id}'
)
if response.status_code == 204:
print('Task deleted successfully')
elif response.status_code == 404:
print('Task not found — already deleted?')
else:
print('Unexpected status:', response.status_code)Codes d'état : réussite 2xx
Les codes d'état indiquent à votre agent si une requête a réussi ou échoué. La plage 2xx indique une réussite :
200 OK— GET/PUT/PATCH a renvoyé des données201 Created— POST a créé une nouvelle ressource204 No Content— DELETE a réussi, aucun corps n'a été renvoyé
Vérifiez toujours le code d'état avant de traiter le corps de la réponse.
import requests
response = requests.post(
'https://api.example.com/tasks',
json={'title': 'New task'}
)
if response.status_code == 201:
task = response.json()
print('Created:', task['id'])
elif response.status_code == 200:
print('Updated existing resource')
else:
print('Unexpected code:', response.status_code)Codes d'état : erreurs client 4xx
Les erreurs 4xx signifient que votre agent a envoyé une requête incorrecte. Les plus courantes sont :
400 Bad Request— JSON invalide ou champ obligatoire manquant401 Unauthorized— clé API absente ou invalide404 Not Found— la ressource n'existe pas429 Too Many Requests— la limite de débit est dépassée
Votre agent doit corriger la requête au lieu de réessayer aveuglément.
import requests
response = requests.get(
'https://api.example.com/tasks/9999',
headers={'Authorization': 'Bearer YOUR_KEY'}
)
if response.status_code == 401:
print('AUTH ERROR: Check your API key')
elif response.status_code == 404:
print('Task not found')
elif response.status_code == 429:
retry_after = response.headers.get('Retry-After', 60)
print(f'Rate limited. Wait {retry_after}s')
elif response.status_code == 400:
print('Bad request:', response.json().get('error'))Codes d'état : erreurs serveur 5xx
Les erreurs 5xx signifient qu'un problème s'est produit du côté du serveur — votre agent n'a rien fait de mal. Les plus courantes sont :
500 Internal Server Error— bogue ou plantage du serveur502 Bad Gateway— défaillance du service en amont503 Service Unavailable— serveur surchargé ou hors service
Vous pouvez réessayer ces requêtes sans risque après une courte attente.
import requests
import time
def get_with_retry(url, headers, max_retries=3):
for attempt in range(max_retries):
response = requests.get(url, headers=headers)
if response.status_code < 500:
return response # success or client error
wait = 2 ** attempt
print(f'Server error {response.status_code}, retrying in {wait}s...')
time.sleep(wait)
return response # return last response after retriesEn-têtes de requête
Les en-têtes transportent des métadonnées avec chaque requête. Les plus importants pour les agents sont :
Content-Type: application/json— indique au serveur que votre corps est au format JSONAuthorization: Bearer TOKEN— authentifie votre requêteAccept: application/json— indique au serveur que vous attendez du JSON en retourUser-Agent— identifie votre client (certaines API l'exigent)
import requests
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer sk-proj-abc123xyz',
'Accept': 'application/json',
'User-Agent': 'MyAgent/1.0'
}
response = requests.post(
'https://api.example.com/analyze',
headers=headers,
json={'text': 'Analyze this document'}
)
print(response.json())Corps JSON de la requête et de la réponse
La plupart des API modernes échangent des données au format JSON. Pour envoyer des données, utilisez json=payload dans les requêtes (la sérialisation et la définition des en-têtes sont alors automatiques). À la réception, appelez response.json() pour analyser le corps et obtenir un dictionnaire Python.
Vérifiez toujours que les clés attendues existent avant d'y accéder.
import requests
# Send JSON body
response = requests.post(
'https://api.example.com/summarize',
json={
'content': 'Long article text here...',
'max_length': 150,
'format': 'bullet_points'
}
)
# Parse JSON response
result = response.json()
# Always check keys exist
summary = result.get('summary', 'No summary returned')
tokens_used = result.get('usage', {}).get('total_tokens', 0)
print('Summary:', summary)
print('Tokens used:', tokens_used)Tout assembler
Un agent bien conçu regroupe les appels d'API dans une fonction utilitaire claire qui sélectionne la méthode, définit les bons en-têtes, vérifie le code d'état et analyse le JSON. Chaque interaction avec l'API devient ainsi cohérente et facile à déboguer.
Utilisez un objet Session pour réutiliser les connexions et partager les en-têtes entre plusieurs requêtes.
import requests
class APIClient:
def __init__(self, base_url, api_key):
self.base_url = base_url
self.session = requests.Session()
self.session.headers.update({
'Authorization': f'Bearer {api_key}',
'Content-Type': 'application/json',
'Accept': 'application/json'
})
def get(self, path, params=None):
r = self.session.get(f'{self.base_url}{path}', params=params)
r.raise_for_status()
return r.json()
def post(self, path, payload):
r = self.session.post(f'{self.base_url}{path}', json=payload)
r.raise_for_status()
return r.json()
# Usage
client = APIClient('https://api.example.com', 'sk-proj-abc123')
tasks = client.get('/tasks', params={'status': 'open'})
new_task = client.post('/tasks', {'title': 'Write report'})Vérification rapide : méthodes HTTP
Vérifiez votre compréhension des méthodes HTTP et des codes d'état.
Récapitulatif des fondamentaux HTTP
Vous connaissez maintenant les bases HTTP sur lesquelles repose tout agent :
- GET récupère, POST crée, PUT/PATCH met à jour, DELETE supprime
- 2xx = réussite, 4xx = erreur de votre agent, 5xx = erreur du serveur
- Les en-têtes transportent l'authentification (
Authorization: Bearer) et le format (Content-Type: application/json) - Utilisez
response.json()pour analyser le corps et.get()pour accéder aux champs en toute sécurité - Un objet
Sessionpartage les en-têtes et les connexions entre les requêtes
Une fois ces bases maîtrisées, vous pouvez connecter votre agent à n'importe quelle API REST en toute confiance.
Questions Fréquemment Posées
La leçon « Fondamentaux des API REST pour les développeurs d’agents » est-elle gratuite ?
Oui — le texte complet de « Fondamentaux des API REST pour les développeurs d’agents » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours AI Agents, passe à CoddyKit PRO. Le cours AI Agents comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Fondamentaux des API REST pour les développeurs d’agents » ?
Méthodes HTTP, codes d’état, en-têtes et format des requêtes et réponses JSON. Tu pratiques AI Agents avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer AI Agents ?
Aucune expérience préalable n'est requise. AI Agents sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « Fondamentaux des API REST pour les développeurs d’agents » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon AI Agents ?
Oui. Chaque leçon AI Agents inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Fondamentaux des API REST pour les développeurs d’agents
- Authentification : clés API et OAuth
- Gérer les réponses et les erreurs d’API
- Limitation du débit et logique de nouvelle tentative