Après avoir détecté un bug dans l’API d’Active Campaign (à priori), nous ne souhaitons pas perdre de temps.
Nous sommes donc passés à la mise en place de l’api, de notre côté.
Pour éviter d’installer une usine à gaz (comme sails par exemple), nous avons décidé d’utiliser express, et express generator.
Ajout des packages – npm install
On installe donc en global : express et express generator :
- npm install express –save : on installe express dans notre projet, et on enregistre la référence dans le package.json.
- npm install express-generator –g : on installe le générateur en globale pour notre pc
Génération du projet par défaut, dans un dossier existant
On lance alors la génération du projet et donc des dossiers et fichiers nécessaires (un peu comme pour angular avec ng new project).
> express –view=pug -f
-f : pour forcer la génération dans un répertoire non vide
–view=pug, pour choisir le moteur de génération des views : pug.
Des erreurs au lancement du projet avec npm start
On récupère une première erreur : Error: Cannot find module ‘cookie-parser’
A nous alors d’installer cookie-parser comme module : npm install cookie-parser.
En fait au lieu de ça, il vaut mieux lancer un : npm install, qui va tout vérifier.
npm install
added 70 packages from 145 contributors, removed 43 packages and audited 247 packages in 34.082s
found 0 vulnerabilities
Et on peut enfin lancer notre application : npm start.
yes ! we did it !
Tiens au fait, où sait-on quel est le port par défaut ?
Comment savoir, ou changer, le port de lancement de l’application web ?
Vous allez dans le répertoire : bin et vous trouverez un fichier www.
Et vous pourrez y voir un :
var port = normalizePort(process.env.PORT || ‘3000’);
app.set(‘port’, port);
Ecrire notre première route d’API
OK, maintenant que tout est OK, rappelons que nous souhaitons avoir une api web, en RESTfull.
Route et json, en RESTFull
Nous allons mettre en place la première action possible : ajout d’un contact.
L’url va être http//{domain:port}/contact. Et c’est la method qui va indiquer
- si l’on ajoute (POST),
- consulte (GET)
- ou modifie (PUT).
Ici, nous souhaitons ajouter, donc c’est la méthode : POST.
Suivons les étapes suivantes :
Ajout d’un fichier de route : contact.js,
var express = require(‘express’);
var router = express.Router();
module.exports = router;
Puis, nous voulons gérer le POST. Donc avant module.exports, nous ajoutons :
router.post(‘/’, function(req, res, next) {
res.send(‘respond with a resource’);
});
Ajout de la route dans la table de route
Nous allons juste après dans le fichier app.js, et nous ajoutons la route contact.js, dans la table de route, avec ces lignes :
- var contactRouter = require(‘./routes/contact’); => nous récupérons le module créé pour gérer les actions spécifiques aux contacts.
app.use(‘/contact’, contactRouter); => nous ajoutons l’url /contact, avec contactRouter comme controller des actions.
Prochain article : nous attaquons le debug et la mise en place de notre première action de notre api.