#2 Initialiser les données sessions

Les sessions sur le site du BreizhCamp

Le programme du BreizhCamp est accessible à l'url : http://www.breizhcamp.org/conference/programme/.

  • Grâce aux outils de développement du navigateur, déterminer les URLs permettant d'obtenir la liste des sessions au format JSON.

Requête HTTP

Il y a plusieurs techniques permettant de récupérer des données via HTTP.

L'article suivant en donne un aperçu des techniques permettant d'effectuer une requête HTTP dans l'environnement Node : https://www.twilio.com/blog/2017/08/http-requests-in-node-js.html.

Nous allons utiliser la librairie Request (https://github.com/request/request).

Expérimentons l'usage de cette librairie.

  • Installer la librairie via NPM
npm install --save request

Visualiser l'impact dans le package.json.

  • Créer un fichier : prototype/proto-request-json.js avec le contenu suivant :
// importation de la librairie request
// recherche par défaut dans le répertoire node_modules
var request = require('request')

// Envoie de la requête http
request('https://jsonplaceholder.typicode.com/posts', { json: true }, function(err, res, body) {
    if (err) { return console.log('Erreur', err); }

    // body contient les données récupérées
    console.log('Ok', body);
});
  • Tester le script node prototype/proto-request-json.js.

Architecture du projet

  • Ajouter au projet 2 fichiers : ihm.js et service.js.
/breizhcamp-2018-console
    index.js
    ihm.js
    service.js

index.js : le point d'entrée de l'application. ihm.js : composant qui intéragit avec l'utilisateur service.js : composant qui récupère les données

service.js : service d'initialisation des données

  • Compléter le fichier servicejs :

// tableau qui contiendra toutes les sessions du BreizhCamp
var talks = [];

exports.init = function (callback) {

   callback(12);

};
  • Créer un fichier prototype/proto-service.js avec le code suivant :
var service = require('../service')

service.init(function(nb) {
    console.log('[init]', nb, 'sessions trouvées.')
});
  • Exécuter le fichier prototype/proto-service.js :
node prototype/proto-service.js

Vérifier l'affichage :

[init] 12 sessions trouvées.
  • Compléter le fichier service.js en suivant les instructions en commentaires.

// tableau qui contiendra toutes les sessions du BreizhCamp
var talks = [];

exports.init = function (callback) {

    // TODO effectuer les requêtes HTTP permettant de récupérer les données du BreizhCamp

    // TODO     => une fois les données récupérées, alimenter la variable talks

    // TODO         => invoquer la callback avec le nombre de sessions récupérées

};

Vérifier la récupération des données.

ihm.js : Démarrage de l'application.

var service = require('./service');

exports.start = function() {
    service.init(function(nb) {
        console.log('[init]', nb, 'sessions trouvées.')
    });
};

index.js : Lancement de l'IHM

var ihm = require('./ihm');

console.log('** Application BreizhCamp 2018 **');

ihm.start();

Tester l'ensemble via npm start et vérifier que les sessions sont bien récupérées.

results matching ""

    No results matching ""