Comme  au chapitre précédent, nous utiliserons le package http-foundation. Cette fois ci nous utiliserons plus particulièrement le composant fonction Response

Installation

composer require symfony/http-foundation

Composant Response

Avant d'en venir aux détails de ce qu'apporte le composant Response de symfony, faisons un rappel sur les principaux éléments d'une réponse HTTP.

Le but de la réponse est de fournir au client :

  • la ressource qu'il a demandée,
  • ou d'informer le client que l'action qu'il a demandée a été réalisée (via le statut de la réponse);
  • ou d'informer le client qu'une erreur s'est produite dans le traitement de sa demande.

La ressource demandée va se retrouver dans le corps de la réponse

Les informations méta se trouvent dans l'entête de la réponse.

Ex d'entête :

Request URL: http://local.mvc.my/api/cards
Request Method: GET
Status Code: 200 OK
Remote Address: 127.0.0.1:80
Referrer Policy: no-referrer-when-downgrade

Cache-Control: no-cache, private
Connection: close
Content-Length: 272
Content-Type: application/json
Date: Fri, 25 Sep 2020 09:12:42 GMT
Server: Apache/2.4.29 (Ubuntu)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7
Cache-Control: max-age=0
Connection: keep-alive
Host: local.mvc.my
Upgrade-Insecure-Requests:
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36

Ex de corps de la réponse (ici json)

[
  {
    "c_id": 1,
    "c_question": "Nom de l'inventeur du web ?",
    "c_answer": "Tim Berners-Lee",
    "u_id": 1
  },
  {
    "c_id": 2,
    "c_question": "Que veut dire HTML ?",
    "c_answer": "HyperText Markup Language",
    "u_id": 1
  },
  {
    "c_id": 3,
    "c_question": "Date de création du web ?",
    "c_answer": "1991",
    "u_id": 1
  }
]