Chapitre 32 : cURL et APIs externes

Consommez des APIs HTTP en PHP avec l'extension cURL

1. Qu'est-ce que cURL ?

cURL est une extension PHP permettant d'effectuer des requêtes HTTP (GET, POST, etc.) vers des serveurs externes, notamment des APIs REST. Elle est très utilisée pour consommer des services web externes.

2. Requête GET avec cURL

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://api.exemple.com/data");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($curl);
curl_close($curl);

$data = json_decode($response, true);
print_r($data);

Ce code envoie une requête HTTP GET et décode la réponse JSON.

3. Requête POST avec cURL

$data = ["nom" => "Alice", "email" => "alice@example.com"];

$curl = curl_init("https://api.exemple.com/register");
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($curl, CURLOPT_HTTPHEADER, ["Content-Type: application/json"]);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($curl);
curl_close($curl);
echo $response;

4. Gérer les erreurs

$curl = curl_init("https://api.invalide.com");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($curl);

if (curl_errno($curl)) {
  echo "Erreur cURL : " . curl_error($curl);
} else {
  echo "Réponse : $response";
}
curl_close($curl);

5. Utiliser des headers personnalisés

$headers = [
  "Authorization: Bearer VOTRE_TOKEN",
  "Accept: application/json"
];
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);

Utile pour s'authentifier ou spécifier le format de réponse souhaité.

6. Exercice pratique : Consommez une API publique

🎯 Objectif : Créer un script PHP qui interroge une API publique et affiche les données reçues.

Exemple :

  • API : https://api.chucknorris.io/jokes/random
  • Format : JSON

Consignes :

  • Envoyez une requête GET avec cURL
  • Décodez la réponse JSON
  • Affichez la blague reçue dans une page HTML

Bonus :

  • Permettez de rafraîchir la blague avec un bouton
  • Gérez les erreurs de connexion ou de format
Conseil : Cet exercice vous aidera à intégrer des services web externes dans vos projets PHP.

7. Résumé

  • ✅ cURL permet d'interroger des APIs externes avec PHP
  • ✅ Vous pouvez envoyer des requêtes GET, POST, etc.
  • ✅ Il est possible d'envoyer des headers, JSON, et de gérer les erreurs

Vous savez maintenant comment consommer des données d'APIs publiques ou privées via PHP.