Utiliser un Web Service JSON – Episode 1

Dans cette nouvelle série d’articles, nous allons utiliser un Web Service JSON pour alimenter notre base de données. Concrètement, l’idée est de récupérer sur Internet la liste des devises (euro, dollar, etc.) ainsi que leur taux de change.

Qu’est-ce qu’un Web Service ?

Pour faire court, un Web Service (ou service Web) est une application accessible via un site Web, application qui fournit des données à d’autres systèmes potentiellement hétérogènes : d’autres sites Web, des appareils mobiles, des programmes informatiques classiques… Pour une définition plus détaillée, Wikipedia est votre amie !

Un Web Service fournit généralement des données, mais il peut également en recevoir, selon l’application. Le Web Service est une forme de système d’échanges multi-plateformes…

Concrètement, un site peut fournir des données comme la météo, les cours de la bourse, des tarifs de voyages, etc. sous forme de Web Service. Si vous avez un gadget météo sur votre bureau Windows, celui-ci est la partie cliente d’un service Web situé sur un serveur Météo.

Dans notre scénario, nous allons utiliser un Web Service qui fournit les taux de changes des devises, le serveur étant Open Exchange Rates. Et votre base de données Access sera bien sûr l’application cliente.

Le format JSON

Pour qu’un client puisse échanger avec un serveur, il faut qu’ils parlent le même langage, qu’ils utilisent un protocole commun. Comme c’est le serveur qui propose le service, c’est au client de s’adapter et de parler sa langue ! 🙂

Le but de cet article n’est pas de faire le tour des protocoles, nous allons seulement cibler le format proposé par le site Open Exchange Rates. Ce format est dit « JSON » (JavaScript Object Notation), il repose sur une notation simple, compacte, facile à lire par un humanoïde comme vous (pas moi 😀 ).

Voici un extrait des devises qui vont vous être proposées par Open Exchange Rates :

Comme vous le voyez, le format est assez simple :

  • Chaque bloc (ou objet) est délimité par des accolades. L’ensemble constitue donc un objet de base.
  • Un objet est décrit sous forme de paires clefs/valeurs, la clef est indiquée ici entre guillemets (il s’agit d’une chaîne de caractères), la valeur suit la clef (et elle est séparée par le signe « :« ). Par exemple, la clef base à pour valeur USD. Ce qui nous dit que la devise qui sert de base pour les taux est le dollar.
  • La valeur associée à une clef peut elle-même être un autre objet JSON. Par exemple, la clef rates est associée à un nouvel objet (délimité encore par des accolades), dont chaque propriété est une devise.

Obtenir la liste des devises

Notre premier problème va être de récupérer les données JSON fournies par le Web Service. Il s’agit d’envoyer une requête HTTP au Web Service, et de récupérer les données en retour. Nous allons nous inspirer de l’article Lecture de flux RSS – Episode 1, dont le principe est identique (la seule différence, c’est qu’un flux RSS est au format XML, alors que nos devises seront au format JSON).

  1. Démarrez Visual Basic Editor (touches ALT + F11).
  2. Commencez par établir une référence à Microsoft XML, dans le menu Outils / Références (si vous avez plusieurs bibliothèques de même nom, prenez la plus récente).
  3. Cliquez sur le menu Insertion / Module, puis recopiez dans le module le code suivant :

Tester le code

Pour tester ce bout de code :

  1. Faites apparaître la fenêtre Exécution (CTRL + G).
  2. Tapez ceci :
    ? LectureDevisesJSON()
  3. Validez par Entrée.

Si ça marche, vous devriez voir la liste complète des devises, au format JSON, s’afficher dans la fenêtre Exécution. La prochaine fois, nous verrons comment transformer ces données pour pouvoir les exploiter en VBA.

Vous aimerez aussi...

2 réponses

  1. Hervé Inisan dit :

    albanpjy > Merci pour le retour. Je viens de tester avec MS XML 6 et Access 2013, ça marche, mais il faut remplacer les ServerXMLHTTP par des ServerXMLHTTP60 (les noms d’objets ont été modifiés par Microsoft dans la version 6).

  2. albanpjy dit :

    Bonjour,

    Je viens de tester votre code sur Ms Access 2007/Windows 8. Lors du choix de la référence il convient de choisir Microsoft XML v.5 . J’ai en effet teste avec la v.6 sans succès, erreur de compilation.

    Cordialement.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *