Post

Symfony – Les réponses HTTP

Symfony – Les réponses HTTP

Cours 4 — Les réponses HTTP

Présentation

Après avoir exécuté un contrôleur, Symfony doit renvoyer une réponse au navigateur.

Cette réponse est appelée une réponse HTTP.

Sans réponse HTTP, le navigateur ne reçoit rien.


Schéma général

1
2
3
4
5
6
7
8
9
Navigateur
    ↓
Route
    ↓
Contrôleur
    ↓
Response
    ↓
Navigateur

1. Réponse texte simple

1
2
3
4
5
6
7
use Symfony\Component\HttpFoundation\Response;

#[Route('/bonjour', name: 'app_bonjour')]
public function bonjour(): Response
{
    return new Response('Bonjour');
}

Résultat :

1
Bonjour

Comment lire ce code ?

1
return new Response('Bonjour');

Signifie :

1
2
Créer une réponse HTTP
contenant le texte Bonjour.

2. Réponse HTML

1
return new Response('<h1>Bonjour</h1>');

Résultat :

1
<h1>Bonjour</h1>

Le navigateur interprète alors le HTML.


3. Réponse générée par Twig

Le cas le plus fréquent dans Symfony.

1
2
3
return $this->render(
    'accueil/index.html.twig'
);

Ce qui se passe

1
2
3
4
5
6
7
Twig
    ↓
HTML
    ↓
Response
    ↓
Navigateur

Même si tu ne vois pas explicitement l’objet Response, Symfony le crée automatiquement.


4. Réponse avec variables Twig

1
2
3
4
5
6
return $this->render(
    'patient/show.html.twig',
    [
        'nom' => 'Dupont'
    ]
);

Twig :

1
<h1></h1>

Résultat :

1
<h1>Dupont</h1>

5. Réponse JSON

Très utilisée pour les API.

1
2
3
4
return $this->json([
    'nom' => 'Dupont',
    'age' => 42
]);

Résultat :

1
2
3
4
{
    "nom": "Dupont",
    "age": 42
}

Pourquoi est-ce utile ?

Une application Android, Flutter ou JavaScript peut lire directement ces données.

C’est exactement le principe utilisé par de nombreuses API.


6. Réponse vide

1
return new Response();

Symfony renvoie simplement une réponse vide.


À retenir

Une réponse HTTP est le résultat final envoyé au navigateur.

Dans Symfony, elle peut contenir :

  • du texte ;
  • du HTML ;
  • une page Twig ;
  • du JSON.

Schéma mental :

1
2
3
4
5
Contrôleur
 ↓
Response
 ↓
Navigateur

Conclusion

La réponse HTTP est l’étape finale du traitement d’une requête.

Quand tu lis un contrôleur Symfony, la première chose à regarder est souvent :

1
return ...

C’est cette instruction qui détermine ce que recevra réellement l’utilisateur.

This post is licensed under CC BY 4.0 by the author.