0 XP
?
API REST et Backend avec Laravel/Introduction au backend et à Laravel
Débutant40 min25 XP

Objectifs de cette leçon

  • Comprendre l'architecture MVC
  • Connaître les avantages de Laravel
  • Découvrir l'écosystème Laravel

Introduction au backend et à Laravel ⚡

C'est quoi le backend ? 🤔

Imagine un restaurant :

RôleRestaurantApplication web
ClientToi, assis à tableLe navigateur (frontend)
ServeurPrend la commandeLaravel (backend)
CuisinierPrépare le platLe contrôleur
FrigoStocke les ingrédientsLa base de données
PlatCe que tu reçoisLa réponse JSON

🧠 Backend = tout ce qui se passe côté serveur, invisible pour l'utilisateur.

Frontend vs Backend

🌐 FRONTEND (React, Next.js)          ⚡ BACKEND (Laravel)
  ┌─────────────────────┐              ┌─────────────────────┐
  │  Interface utilisateur │  ──HTTP──▶ │  Traitement des     │
  │  Ce que tu vois       │  ◀──JSON── │  données             │
  │  Clics, animations    │              │  Base de données    │
  └─────────────────────┘              └─────────────────────┘
CritèreFrontendBackend
LangageJavaScript, TypeScriptPHP (Laravel)
RôleAfficher des donnéesTraiter des données
Visible ?OuiNon
Exécuté surLe navigateurLe serveur
Base de donnéesJamais en directUniquement ici

Qu'est-ce que Laravel ?

Laravel est un framework PHP pour créer des applications web et des API.

PHP tout seul :           Laravel :
  ┌──────────────┐        ┌──────────────────────┐
  │  Tout à faire │        │  Routes toutes prêtes │
  │  à la main    │        │  ORM intégré          │
  │  Sécurité ?   │        │  Authentification     │
  │  Pas de DB    │        │  Migrations           │
  └──────────────┘        │  Validation           │
                          │  Sécurité incluse     │
                          └──────────────────────┘

Pourquoi Laravel plutôt que PHP seul ?

FonctionnalitéPHP seulLaravel
RoutageÀ coder manuellementDéclaré dans routes/api.php
Base de donnéesRequêtes SQL brutesEloquent ORM (plus simple)
SécuritéTout à gérerInclut la protection CSRF, XSS
Templatesecho "<html>"Blade (moteur de templates)
CommandesAucuneArtisan (générateur de code)

Le cycle d'une requête HTTP

Voici comment Laravel traite une requête HTTP :

Étape par étape :

  1. 🌐 Navigateur : L'utilisateur tape une URL ou clique sur un lien
  2. 🛣️ Route : Laravel lit l'URL et cherche la route correspondante
  3. 🎯 Contrôleur : Le contrôleur exécute la logique (récupérer des données, valider, etc.)
  4. 🗄️ Eloquent : Eloquent traduit les appels PHP en requêtes SQL
  5. 📦 JSON : Laravel construit la réponse JSON
  6. ✅ Frontend : Le navigateur reçoit les données et les affiche

💡 Tout ce cycle prend quelques millisecondes !

Architecture MVC

Laravel suit le pattern MVC (Modèle - Vue - Contrôleur) :

┌─────────────────────────────────────────────────────┐
│                    Requête HTTP                       │
│                        │                              │
│                        ▼                              │
│  ┌─────────┐    ┌──────────┐    ┌────────────────┐   │
│  │ Route   │───▶│Contrôleur│───▶│   MODÈLE       │   │
│  │         │    │          │    │  (Eloquent)    │   │
│  └─────────┘    │  Logique  │    │    │            │   │
│                 │  métier   │    │    ▼            │   │
│                 └──────────┘    │  Base de        │   │
│                      │          │  données         │   │
│                      ▼          └────────────────┘   │
│  ┌─────────┐                                         │
│  │ VUE     │◀─────────────────────────────────────────│
│  │(JSON)   │                                         │
│  └─────────┘                                         │
│                        │                              │
│                        ▼                              │
│                    Réponse HTTP                        │
└─────────────────────────────────────────────────────┘
ComposantRôleExemple
RouteDéfinit quel URL répond à quelle action/api/usersUserController@index
ContrôleurContient la logique métierRécupérer les utilisateurs, valider, etc.
ModèleReprésente une table de la base de donnéesUser::all()
VueFormat de la réponse (JSON, HTML)response()->json(...)

Exemple concret : API d'utilisateurs

<?php

// routes/api.php -- Definition de la route
Route::get('/api/utilisateurs', [UserController::class, 'index']);

// app/Http/Controllers/UserController.php -- Le controleur
class UserController extends Controller
{
    public function index()
    {
        // Eloquent traduit ceci en SQL
        $utilisateurs = User::all();

        // Laravel construit le JSON automatiquement
        return response()->json($utilisateurs);
    }
}

Quand le navigateur appelle GET /api/utilisateurs, la reponse est :

[
  { "id": 1, "nom": "Alice", "email": "alice@exemple.com" },
  { "id": 2, "nom": "Bob", "email": "bob@exemple.com" }
]

Les points clés à retenir

✅ Le backend = le cerveau de l'application (invisible mais essentiel) ✅ Laravel = un framework PHP qui simplifie la creation d'API ✅ MVC = le pattern organisateur : Route → Contrôleur → Modèle → Vue (JSON) ✅ Une requête HTTP = un aller-retour complet en quelques millisecondes ✅ Laravel gere automatiquement : routage, BDD, securite, validation

Pièges fréquents 🚨

PiègeExplication
❌ Confondre frontend et backendLe frontend = ce qu'on voit. Le backend = ce qui traite les données
❌ Oublier que PHP s'execute sur le serveurPHP n'est PAS comme JavaScript : il ne s'execute pas dans le navigateur
❌ Croire que Laravel est "magique"Laravel suit des patterns bien précis. Chaque "magie" a une explication technique

Exercices pour toi 🎯

  1. Quiz : Relis le tableau Frontend vs Backend. Sans regarder, cite 3 différences.
  2. Schéma : Dessine le cycle d'une requête HTTP sur une feuille (6 étapes).
  3. Réflexion : Dans ton restaurant préféré, qui joue le rôle du contrôleur ? de la base de données ?
  4. PHP simple : Écris un script PHP qui retourne {"message": "Hello Laravel!"} en JSON. (Indice : header('Content-Type: application/json'); echo ...)
  5. Défi : Ouvre le simulateur interactif ci-dessous. Clique sur chaque ligne du pseudo-code pour voir le cycle en action.

⚡ Simulateur — Cycle d'une requête HTTP avec Laravel

Étape 1/6
📝 Pseudo-code
1// 1. Le navigateur envoie une requête HTTP # ⬅ cliquer pour envoyer
2GET /api/utilisateurs HTTP/1.1 # ⬅ voir la requête
3Host: mon-app.test
4
5// 2. Laravel reçoit et route la requête # ⬅ cliquer pour router
6Route::get('/api/utilisateurs', [UserController::class, 'index'])
7
8// 3. Le contrôleur exécute la logique # ⬅ cliquer pour exécuter
9public function index() {
10 $users = User::all();
11 return response()->json($users);
12}
13
14// 4. Eloquent interroge la base de données # ⬅ cliquer pour voir SQL
15SELECT * FROM utilisateurs
16
17// 5. Laravel construit la réponse JSON # ⬅ cliquer pour inspecter
18HTTP/1.1 200 OK
19Content-Type: application/json
20
21// 6. Le frontend reçoit les données # ⬅ cliquer pour voir
22fetch('/api/utilisateurs')
23 .then(res => res.json())
24 .then(data => console.log(data))
⚡ Cycle requête HTTP1/6
👆 Cliquez sur une ligne du pseudo-code pour voir l'étape correspondante
🌐NavigateurRequête HTTP🛣️RouteRoutage🎯ContrôleurLogique métier🗄️EloquentSQL / BDD📦JSONRéponseFrontendAffichage
🌐 Requête HTTP
GET /api/utilisateurs
Host: mon-app.test
💡 Le navigateur envoie la requête à l'adresse du serveur Laravel.
💡 Le cycle MVC de Laravel
🌐 Requête🛣️ Route🎯 Contrôleur🗄️ Eloquent📦 JSON✅ Frontend

🌐 Le navigateur envoie une requête HTTP GET à l'adresse de l'API. Le Header indique l'hôte et le chemin.