Bonjour,
j'aurai voulu quelques informations concernant l'architecture REST car je suis encore un peu perdu. J'ai beaucoup lu dessus, mais ce que je ne comprend pas c'est comment notre serveur va détecter s'il s'agit d'une action de suppression etc ?

On peut tout aussi bien créer une route (ici slim ou autre framework ) comme ça :

$app->get('/produit/delete/5');

plutôt que comme ça :

$app->delete('/produit/delete/5');

J'avoue manquer d'expérience en back-end, donc je suis perdu

4 réponses


Maenhyr
Réponse acceptée

Lorsque tu crées ta requête HTTP, tu vas y inclure le verbe dans son header. PHP est capable de récupérer le verbe (ainsi que n'importe quel element inclus dans la requete).

Voici par exemple comment CakePHP gère la reconnaissance de ton verbe : http://book.cakephp.org/2.0/en/controllers/request-response.html#inspecting-the-request

Tu peux voir le verbe si tu ouvres Le developer tools avec l'onglet Network. http://s23.postimg.org/9gox9vqvv/Screen_Shot_2015_10_28_at_13_10_06.png

Il y a deux choses a comprendre ici :

  • la route : /produit/delete/5 tu indiques au serveur de lancer l'action delete dans le controller produit avec l'id 5.
  • le verbe : GET ou DELETE

    Concernant la route, il s'agit des pratiques de ton framework.
    Concernant le verbe, il s'agit d'une bonne pratique. Beaucoup de framework ne comprennent que le GET et le POST, mails il y a aussi le PUT et le DELETE.

    Voici le cas d'usage de chaque verbe :

    • GET : recuperation d'informations (operation dite safe)
    • POST : création d'une entité en base de données (operation dite unsafe)
    • PUT : édition d'une entité en base de données (operation dite unsafe)
    • DELETE : suppression de l'entité en base de données (operation dite unsafe)

    Les utiliser proprement permettra d'autodocumenter ton API et de pouvoir avoir plus de protection car tu peux rejeter des requetes si le verbe n'est pas bon.

Merci de tes informations PrBaron (on ne t'a pas vu depuis quelques temps !).
Tu dis beaucoup de framework ne comprennent que le GET et le POST, mails il y a aussi le PUT et le DELETE. .

Ma dernière question est : comment le framework / serveur reconnait que la requête est de type get, post ou encore delete ?

Merci de tes renseignements, je comprend un peu mieux :)