DEV Community

Sid Ali BENTIFRAOUINE
Sid Ali BENTIFRAOUINE

Posted on

Développer une API Rest avec NodeJS, Express et MongoDB: #3 Les verbes HTTP

Les verbes HTTP... nous n'allons pas lire Rimbaud, calme-toi!
Une facon toute conne de décrire ce qu'est un verbe serait de dire:

"Les verbes HTTP me servent à donner des ordres à mon serveur"

GET: donne moi un truc

C'est le seul qu'on a pu tester pour le moment, car la facon la plus simple de faire un GET est de lancer un navigateur et de taper une url quelconque, par contre si je veux mettre des paramètre, c'est cuit.

Rappel de la syntaxe du GET en ExpressJS:

app.get("/", (request, response) => {
  response.statusCode = 200
  response.send({ message: "Mon premier JSON!" })
})
Enter fullscreen mode Exit fullscreen mode

Halte! un outils important

Avant de pouvoir continuer, on va devoir installer un outils indispensable pour le bon dévelopeur d'API que je suis:
Postman

Le tour des lieux

Ca va etre assez simple, Postman permet de créer des requetes de tout types avec modification des en-tetes, parametres et tout le reste.

Image description

On connais déjà la syntaxe:

app.get("/bonjour", (request, response) => {
  response.send({ message: "Bonjou!" })
})
Enter fullscreen mode Exit fullscreen mode

On teste ca:
Postman est super simple et encore plus simple lorsqu'on utilise que l'URL. Je vais bientot commencer à utiliser des Headers etc...
Image description

POST: crée un truc et que ca saute!

Crée moi ca

app.post("/champion", (request, response) => {
  response.send({ message: "J'ai t'ai créé ton truc 🤞 (je mens)!" })
})
Enter fullscreen mode Exit fullscreen mode

On teste ca:

Image description

Si tu te souviens bien des autres routes que nous avions créé, j'avais une route GET /champions et pourtant il n'a pas confondu le POST /champions. Voilà où réside la logique des verbes:

  1. Je garde le meme nom de resource /champions
  2. Je décline en plusieurs verbes
  3. GET /champions: Donne moi tous les champions
  4. POST /champions: Crée moi un nouveau champion
  5. PUT /champions/1: Modifie le champion dont l'ID est 1 (on va voir les params après)
  6. GET /champions/1: Donne moi le champions dont l'ID est 1
  7. DELETE /champions/1: Supprime le champions dont l'ID est 1

PUT: modifie moi un truc

app.put("/champions/:id", (request, response) => {
  response.send({
    message: `J'ai modifié le chapmion ${request.params.id}🤞 (je mens)!`,
  })
})
Enter fullscreen mode Exit fullscreen mode

On teste ca:

Image description

DELETE: j'ai changé d'avis, supprime-moi ca!

Normalement arrivé ici, tu dois commencer à voir l'idée et tu peux deviner la prochaine syntaxe ainsi que la requete:

app.delete("/champions/:id", (request, response) => {
  response.send({
    message: `J'ai supprimé le chapmion ${request.params.id}🤞 (je mens)!`,
  })
})
Enter fullscreen mode Exit fullscreen mode

On teste ca:

Image description

Si t'as bien suivi jusqu'ici, tu devrais te poser des question sur le comment je fais pour:

  • Créer un champion avec un nom, description, blabla
  • Mettre à jour la description de ce champion

Là on va passer vers une autre partie:

  • Le body
  • Les paramètres

Top comments (0)