DEV Community

Sid Ali BENTIFRAOUINE
Sid Ali BENTIFRAOUINE

Posted on

4 2

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

Image of Datadog

Master Mobile Monitoring for iOS Apps

Monitor your app’s health with real-time insights into crash-free rates, start times, and more. Optimize performance and prevent user churn by addressing critical issues like app hangs, and ANRs. Learn how to keep your iOS app running smoothly across all devices by downloading this eBook.

Get The eBook

Top comments (0)

nextjs tutorial video

Youtube Tutorial Series 📺

So you built a Next.js app, but you need a clear view of the entire operation flow to be able to identify performance bottlenecks before you launch. But how do you get started? Get the essentials on tracing for Next.js from @nikolovlazar in this video series 👀

Watch the Youtube series

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay