Comment écrire une API REST en PHP en 30 minutes : code prêt à l'emploi

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course
```html

Comment écrire une API REST en PHP en 30 minutes



Créer sa propre API REST est l'une des compétences clés d'un développeur backend moderne. Beaucoup de débutants pensent que cela nécessite des frameworks lourds comme Laravel ou Symfony. En réalité, une API REST basique en PHP pur peut être écrite en seulement une demi-heure. Dans cet article, nous allons détailler le processus étape par étape pour créer un service RESTful que vous pouvez immédiatement utiliser dans des projets réels — des applications mobiles aux sites single-page.



Nous n'utiliserons pas de bibliothèques tierces. Tout le code sera écrit en PHP vanilla. Vous apprendrez à traiter les requêtes HTTP, travailler avec JSON, organiser le routage et renvoyer les bons statuts HTTP. C'est parti !



1. Structure du projet et préparation



Avant d'écrire du code, créons une structure de fichiers simple. Pour notre API, nous n'aurons besoin que de quelques fichiers :



  • index.php — le point d'entrée qui traitera toutes les requêtes ;
  • .htaccess — pour rediriger toutes les requêtes vers index.php (si vous utilisez Apache) ;
  • config.php — le fichier de configuration pour la connexion à la base de données (optionnel).


Créez un dossier pour le projet, par exemple my-rest-api, et placez-y ces fichiers.



Configuration du .htaccess



Pour que toutes les requêtes arrivent dans notre script principal, créez un fichier .htaccess à la racine du projet :



RewriteEngine OnRewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule ^(.*)$ index.php [QSA,L]


Ce code redirige toutes les requêtes qui ne pointent pas vers des fichiers ou dossiers réels vers index.php. Le paramètre QSA conserve la query string.



2. Routage et traitement des requêtes



Écrivons maintenant le fichier principal — index.php. Il va recevoir la requête, déterminer la méthode HTTP (GET, POST, PUT, DELETE) et le chemin, puis appeler le gestionnaire approprié.



Routage de base



Commençons par un exemple simple. Créons un tableau de routes et une fonction pour les traiter :



<?phpheader('Content-Type: application/json');header('Access-Control-Allow-Origin: *');header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE');header('Access-Control-Allow-Headers: Content-Type');

$method = $_SERVER['REQUEST_METHOD'];$path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);

// On enlève le slash à la fin$path = rtrim($path, '/');

// Routage simpleswitch (true) { case $path === '/api/users' && $method === 'GET': getUsers(); break; case $path === '/api/users' && $method === 'POST': createUser(); break; case preg_match('/^\\/api\\/users\\/(\\d+)$/', $path, $matches) && $method === 'GET': getUser($matches[1]); break; default: http_response_code(404); echo json_encode(['error' => 'Route not found']); break;}

function getUsers() { // Données factices echo json_encode(['users' => ['Alice', 'Bob', 'Charlie']]);}

function getUser($id) { echo json_encode(['user' => ['id' => $id, 'name' => 'User ' . $id]]);}

function createUser() { $input = json_decode(file_get_contents('php://input'), true); echo json_encode(['message' => 'User created', 'data' => $input]);}?>


Notez plusieurs points importants :

  • Nous définissons l'en-tête Content-Type: application/json — toutes les réponses seront en JSON.
  • Les en-têtes CORS autorisent les requêtes depuis n'importe quel domaine (pour le développement).
  • Le corps des requêtes POST/PUT est lu via php://input.


3. Travail avec la base de données



Une vraie API fonctionne rarement avec des données factices. Ajoutons une connexion à MySQL via PDO. Créez le fichier config.php :



<?phpdefine('DB_HOST', 'localhost');define(
```                

Blogs

Book Recommendations