Backend PHP (BPH) Help

Qu'est-ce qu'une API ?

Une API (Application Programming Interface) c'est un ensemble de routes que vous mettez à la disposition du public (de façon gratuite ou payante) afin de rendre accessible, par du code, certaines informations ou fonctionnalités de votre application.

À quoi servent les APIs ?

Une API c'est grosso-modo une application qui n'a pas de front-end, elle peut donc théoriquement permettre de faire tout ce que peut faire votre backend.

Elles sont utiles dans de multiples cas de figure parmi lesquels :

  • Votre front est une application mobile qui nécessite une base de données partagées entre les utilisateurs

  • Votre application permet à d'autres applications d'utiliser vos services (exemples : connexion via le compte Google, Steam, GitHub, etc etc)

  • Vous voulez mettre à disposition du public des gros volumes de données (exemple: data.gouv.fr)

  • Votre frontend est séparé de votre backend (exemple : une application React ou Vue)

Comment on les développe ?

Une API peut être codée avec n'importe quelle technologie qui s'exécute côté serveur :

  • PHP

  • Node.js

  • Python

  • Java

  • ... et même en C!

Tant que vous avez un moyen de capter une requête vers votre serveur et de renvoyer une réponse, vous pouvez coder une API.

Comment communiquer si l'API et le front sont dans deux langages différents ?

Les APIs modernes renvoient leurs réponses dans un format spécifique appellé JSON (JavaScript Object Notation) qui ressemble à ceci :

{ "id": 1, "name": "Classic Margherita Pizza", "ingredients": [ "Pizza dough", "Tomato sauce", "Fresh mozzarella cheese", "Fresh basil leaves", "Olive oil", "Salt and pepper to taste" ], "instructions": [ "Preheat the oven to 475°F (245°C).", "Roll out the pizza dough and spread tomato sauce evenly.", "Top with slices of fresh mozzarella and fresh basil leaves.", "Drizzle with olive oil and season with salt and pepper.", "Bake in the preheated oven for 12-15 minutes or until the crust is golden brown.", "Slice and serve hot." ] }

La plupart des langages permettent de transformer leur variables en JSON et du JSON en variables.

En PHP, on utilise la fonction json_encode() pour transformer une variable en JSON et la fonction json_decode() pour transformer un JSON en variable.

Ça donne quoi du coup en PHP ?

Une es particularités de la création d'API en PHP, c'est que les fonctions json_encode() et json_decode() manipulent des tableaux associatifs. Nous avons donc besoin de transformer nos classes en tableaux associatifs avant de les envoyer en JSON.

Pour ça on rajoute généralement une méthode toArray() dans nos Models.

Exemple :

class User { public function __construct(private string $name) { } public function getName() : string { return $this->name; } // ... public function toArray() : array { return [ 'name' => $this->getName() ]; } }

Une API en MVC

Dans nos projets MVC, le gros changement c'est que si ce projet est une API, nous n'avons pas de templates, nos Controllers, plutôt que de render des templates, vont echo le contenu en JSON que nous voulons renvoyer.

Nous modifions donc notre AbstractController:

abstract class AbstractController { protected function render(array $data) { echo json_encode($data); } }

et dans nos controllers :

class ErrorController extends AbstractController { public function routingError() : void { $this->render([ "code" => 404, "message" => "Routing error. Please check your URL parameters." ]); } }
10 December 2025