Open UI5 : Consommation de web service JSON

Dans les exemples précédents, nous avons utilisé des modèles de données basés sur des données JSON écrites directement en dures dans le code. C’est sympa pour les exemples et pour comprendre comment ça marche, mais aurez compris que ce n’est évidemment pas la finalité 😉

Un web service c’est en gros, une url avec tout plein de paramètres (c’est mieux pour préciser ce que l’on souhaite récupérer ;-)) qui retourne les données correspondantes à notre requête dans un certain format (généralement XML ou JSON).

Admettons que vous souhaitiez développer une application qui affichera les prévisions météo d’une ville donnée, vous pourrez alors vous tourner vers le site OpenWeatherMap qui met à disposition une API répondant parfaitement à ce besoin.

Vous voulez par exemple récupérer les prévisions météo sur 7 jours, vous pouvez pour cela utiliser l’API avec l’url suivante :  api.openweathermap.org/data/2.5/forecast/daily?q=London&mode=xml&units=metric&cnt=7.

Ainsi on retrouve dans cette url :
– La ville (q) : ici « London »
– Le type de données à retourner (mode) : ici « XML »
– L’unité de mesure (units) : ici « metric »
– Le nombre de jours (cnt) : ici « 7 »

Vous pouvez charger cette url directement dans votre navigateur préféré, vous devriez alors obtenir quelque chose comme cela :
2015-04-09_105736

On peut ainsi voir les prévisions météo sur 7 jours pour la ville de Londres dans un format XML.

De même en demandant du format JSON (en spécifiant simplement mode=json au lieu de mode=xml) :
2015-04-09_110028

Bon comme ça c’est moins compréhensible, mais pas de panique notre ami Google regorge de JSON Viewer, par exemple http://jsonviewer.stack.hu/. Collez ainsi la chaîne JSON obtenue et cliquez sur Viewer :
2015-04-09_110510

Vous devriez obtenir cela (tout de suite c’est plus clair) :
2015-04-09_110816

Dans UI5, c’est presque comme ce que l’on a pu voir précédemment. En effet, à la place d’assigner les données en dures via la méthode sap.ui.model.json.JSONModel.setData(<JSON en dur>), on utilisera la méthode sap.ui.model.json.JSONModel.loadData(<url API>).

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s