Tu veux connecter une application mobile, récupérer des données en AJAX, ou créer une interface entre ton frontend et ta base de données ? Alors il te faut une API (Interface de Programmation d’Application). Et bonne nouvelle : tu peux en construire une simplement avec PHP, sans utiliser de frameworks lourds !
Dans cet article, tu découvriras comment créer une API RESTful avec PHP natif, étape par étape. Tu pourras l’utiliser pour des applications web, des apps Android, ou tout autre projet qui a besoin d’échanger des données.
📦 Pourquoi créer une API en PHP ?
• 🔁 Pour séparer le backend du frontend
• 📱 Pour connecter une app mobile à ton site
• 🧠 Pour réutiliser tes données sur plusieurs interfaces
• ⚡ Pour gagner en rapidité, clarté et évolutivité
Structure d’un projet d’API PHP basique
<?php
// Autoriser les requêtes depuis tous les domaines (CORS)
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS");
header("Access-Control-Allow-Headers: Content-Type");
header("Content-Type: application/json");
// Récupérer la méthode et l'URI
$method = $_SERVER['REQUEST_METHOD'];
$request_uri = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
// Supprimer le préfixe s'il existe (ex: /api/utilisateurs)
$base_path = "/api"; // à adapter si ton dossier n'est pas "api"
$endpoint = str_replace($base_path, '', $request_uri);
// Routage basique
switch ($method) {
case 'GET':
if ($endpoint === '/utilisateurs') {
require_once("routes/get.php");
} else {
http_response_code(404);
echo json_encode(["error" => "Route GET introuvable"]);
}
break;
case 'POST':
if ($endpoint === '/utilisateurs') {
require_once("routes/post.php");
} else {
http_response_code(404);
echo json_encode(["error" => "Route POST introuvable"]);
}
break;
case 'PUT':
// Tu pourras ajouter un require ici plus tard
http_response_code(501); // Not Implemented
echo json_encode(["error" => "PUT non encore implémenté"]);
break;
case 'DELETE':
// Tu pourras ajouter un require ici plus tard
http_response_code(501);
echo json_encode(["error" => "DELETE non encore implémenté"]);
break;
case 'OPTIONS':
// Réponse simple pour OPTIONS (pré-vol CORS)
http_response_code(200);
break;
default:
http_response_code(405);
echo json_encode(["error" => "Méthode non autorisée"]);
break;
}
?>
Connexion à la base de données
<?php
$host = "localhost";
$dbname = "nom_de_ta_base";
$username = "root";
$password = "";
try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
echo json_encode(["error" => "Erreur de connexion : " . $e->getMessage()]);
exit;
}
?>
Récupérer les données (GET)
<?php
require_once("../config/database.php");
header("Content-Type: application/json");
$stmt = $pdo->prepare("SELECT * FROM utilisateurs");
$stmt->execute();
$data = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($data);
?>
Insérer des données (POST)
<?php
require_once("../config/database.php");
header("Content-Type: application/json");
$input = json_decode(file_get_contents("php://input"), true);
if (!isset($input["nom"]) || !isset($input["email"])) {
http_response_code(400);
echo json_encode(["error" => "Champs manquants"]);
exit;
}
$nom = htmlspecialchars($input["nom"]);
$email = htmlspecialchars($input["email"]);
$stmt = $pdo->prepare("INSERT INTO utilisateurs (nom, email) VALUES (?, ?)");
$stmt->execute([$nom, $email]);
echo json_encode(["success" => true, "message" => "Utilisateur ajouté"]);
?>
Bonnes pratiques à suivre
• Utilise des headers JSON pour les réponses (Content-Type: application/json)
• Retourne des codes HTTP clairs (200, 201, 404, 500…)
• Protège ton API avec une clé API ou authentification
• Structure bien tes dossiers (ex: /api/, /config/, /routes/)
• Teste avec Postman ou cURL tes points d’entrée
🚀 Ce que tu pourras faire après cet article
• Créer un système de login mobile/web via API
• Gérer des articles, utilisateurs, commentaires ou notifications
• Relier ton API à un frontend en JavaScript, Vue.js ou React
• Utiliser AJAX pour charger du contenu sans recharger la page
Merci d’avoir consulté cet article sur notre site !
Tu es maintenant prêt à créer tes propres APIs et rendre tes projets bien plus puissants. Continue à explorer nos autres tutoriels pour aller plus loin dans le développement PHP. À très bientôt !