Développer une API Rest avec NodeJS, Express et MongoDB: #4 Le body et les paramètres
Sid Ali BENTIFRAOUINE
Posted on September 18, 2022
le body
Je sais démarrer mon serveur, comment recevoir des requetes, comment les arranger selon le contexte et l'ordre donné.
GET
/POST
/PUT
/DELETE
.
Maintenant il me faut un moyen de faire passer de l'information à mes requetes.
Dans la partie #3, on a eu un petit teasing des params. Flashback:
app.delete("/champions/:id", (request, response) => {
// ...etc...
Et bien maintenant, je vais aller plus loin. Vers l'infini et au-dela 🚀
Lorsque je recois une requete, j'ai accès dans mon callback (la petite fonction dont les deux premiers parametre sont request
et response
).
Le response
n'est pas sorcier, on l'utilise depuis le début de ce cours.
Le request
nous interesse beaucoup plus pour cette partie.
Amusons-nous à faire un console.log
de ce que contient l'objet request.body
:
app.post("/champions", (request, response) => {
console.log(request.body)
response.send({
message: "Je veux bien créer un champion, mais c'est quoi son nom?",
})
})
Bon, rien d'interessant, allez je modifie ma requete sur Postman:
Bon j'ai que ca: {}
, c'est normal je n'ai rien envoyé dans le body
. Voilà comment je dois faire:
Voilà qui est beaucoup mieux: { name: 'Graves', description: 'Champion cancer' }
Et là je peux enchainer et utiliser mon body
comme bon me semble request.body.name
ou request.body.description
.
lesparams
app.get("/champions/:id", (request, response) => {
console.log(request.params)
response.send({
message: `T'as demandé le champion ${request.params.id} ?`,
})
})
Je peux aussi faire ca comme suit pour les enchainer:
app.get("/champions/:id/day/:day", (request, response) => {
console.log(request.params.id)
console.log(request.params.day)
response.send({
message: `T'as demandé le champion ${request.params.id}
?`,
})
})
les query params
app.get("/meteo", (request, response) => {
console.log(request.query)
response.send({
message: `T'as demandé la meteo d'${request.query.start} à ${request.query.end} ?`,
})
})
Ce qui donne:
Je peux tout mélanger si je veux
app.get("/meteo/:ville", (request, response) => {
console.log("Body", request.body)
console.log("Params", request.params)
console.log("Query", request.query)
response.send({
reponse: `Tu m'as dis ${body.message}`,
ville: request.params.ville,
meteo: `T'as demandé la meteo d'${request.query.start} à ${request.query.end} ?`,
})
})
La difference entre les trois
Le body est généralement utilisé pour donner
de la donnée, comme des infos de création ou de mise à jour.
Tandis que les params
vont plus etre utilisés pour dire, "je veux la donnée du champion avec l'id: 1", "je veux supprimer ca",
Les query
, ce serait plus: donne moi les évenement de "telle date à telle date".
Posted on September 18, 2022
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.
Related
November 8, 2022
September 18, 2022