1. Découvrir les bases concernant les routes

Précédemment, on a vu ensemble un premier endpoint très basique. Il affichait simplement « Hello, Express ! », depuis app.js :

const express = require('express')
 
const app = express()
const port = 3000
 
// Le premier endpoint de notre API Rest :
app.get('/', (req, res) => res.send('Hello, Express!'))
 
app.listen(port, () => console.log(`Notre application Node est démarrée sur : http://localhost:${port}`))

Alors, même si nous avons déjà vu rapidement le fonctionnement d’un point de terminaison avec Express, il faut que l’on approfondisse un peu plus tout ça. En effet, par la suite nous allons consacrer la majeure partie de notre temps à ajouter des endpoints. Il ne faut plus que ça nous fasse peur !  😉

Alors, ajouter un nouveau endpoint à notre API Rest revient à déclarer une nouvelle route dans Express. Et heureusement, le fonctionnement des routes dans Express n’est pas très compliqué, car cela peut se résumer à ceci :

Point de terminaison Express = app.METHODE(CHEMIN, GESTIONNAIRE(req, res))

Dans cette savante équation, vous reconnaîtrez les éléments suivants :

  • app est une instance de notre application Express.
  • La méthode HTTP utilisée, en minuscule.
  • Le CHEMIN vers la ressource sur laquelle nous intervenons.
  • La méthode GESTIONNAIRE pour notre point de terminaison, qui doit s’occuper de retourner une réponse au client.

Avec cette simple équation, nous pouvons déjà déduire pas mal de choses ! Regardez plutôt ce que j’obtiens de mon côté :

// Exemples de route possibles avec Express :
app.get('/pokemons/1', (req, res) => res.send('Les informations du pokémon n°1 !')
app.post('/pokemons', (req, res) => res.send('Vous venez d'ajouter un nouveau pokémon au pokédex !')
app.put('/pokemons/1', (req, res) => res.send('Vous souhaitez modifier le pokémon n°1.') 
app.delete('/pokemons/1', (req, res) => res.send('Le pokémon n°1 vient d'être supprimé.')
app.delete('/pokemons', (req, res) => res.send('Oh mince ! Vous venez de supprimer tous les pokémons !')

Bon maintenant, nous avons une meilleure compréhension du fonctionnement des routes avec Express. On devrait être capable d’ajouter un nouveau endpoint, permettant de retourner le pokémon Bulbizzare, qui aurait l’identifiant 1.

Si vous essayez d’implémenter un tel point de terminaison, vous devriez obtenir cette nouvelle route dans app.js :

// ...
app.get('/', (req, res) => res.send('Hello, Express!'))
 
app.get('/api/pokemons/1', (req, res) => res.send('Hello, Bulbizarre !'))
 
// ...

Ajoutez ce nouveau point de terminaison, et retournez dans votre navigateur. Saisissez l’URL correspondant à ce point de terminaison, à savoir « localhost:3000/api/pokemons/1« … Et vous devriez voir ceci apparaître dans votre navigateur :

Magnifique, c’est un premier point de terminaison en place pour notre API Rest !

Nous avons désormais deux routes en place, la route vide, qui permet en gros de tester si l’API Rest est bien démarré, et notre nouvelle route qui retourne un premier pokémon !

Eh bien ça avance vite, continuons sur cette lancée. Nous allons approfondir le fonctionnement des routes avec Express dès la prochaine étape.