La problématique :

La question est dans toutes les bouches en Lorrraine, durant le week end des festivités de la Saint Nicolas. Pour celles et ceux qui ne connaissent malheuresement pas, le site Aujourd'hui à Nancy à fait plusieurs reportages les années précédentes sur cette manifestation. Mais aujourd'hui, revenons à ce que je voulais connaitre hier, le temps de cette journée très importante à Nancy : quel temps fait il ? (tout lorrain répondra, "il fait un temps de Saint Nicolas", c'est à dire, il fait très froid ! :) )

Le service interrogé : Accuweather

Parmi les listes de services météo interrogeables, je me suis penché sur Accuweather qui propose notamment une petite version gratuite de leurs API plut^ot sympa et dont j'aimerais réutiliser sur Aujourd'hui à Nancy (et merde, je suis démasqué)

Désormais, vu que 'en ai parlé la semaine dernière, j'ai pris à décision de ne me pencher uniquement sur les appels d'API et non plus sur le traitemet des résulrtats. J'écrirai a l'occasion un article détaillé sur le traitement des résultats recueillis, en XML, JSON et écentuellement CSV (très compliqué simple en fait un split suffit). N'hésitez pas à me redemander si besoin.

L'appel de l'API

Selon les demandes et résultats souhaités, il y a plusieurs points d'entrée. Nous allons en voir deux aujourd'hui, dont un, le premier, pas des plus courants. Bien entendu, comme à chaque vois, il vous faut créerr un compte sur Accuweather avec d'obtenir gratuitement une clef API. Sur Accuweather, vous avez droit gracieusement à 50 requetes par jour avec ce compte gratuit. Sympa pour faire ses développements, cependant, vous n'avez pas tous els services (notament des résultats en anglais). Renseignez vous sur les fonctionnalités des différentes API de Accuweather.

Appel par l'adresse IP

Qui n'a pas souhaité affiché le temps selon l'adresse IP de l'utilisateur ? . Bon en réfléchissant je sais pas qui ca peut interesser, surtout si l'utilisateur partage une adresse IP (oui oui ca se fait maintenant, vu la pénurie). Le point d'entrée est http://dataservice.accuweather.com/locations/v1/cities/ipaddress

Si vous récupérez l'adresse IP de votre utilisateur de votre utilisateur courant (en PHP par exemple, cet exemple-ci est interessant : http://www.infowebmaster.fr/tutoriel/php-fonction-adresse-ip car vous etes quasiment de trouver l'IP exacte du client), il vous suffit de la passer dans l'URL fournie. Essayons : 
 
 
et regardez quel temps bénéficient les employés de Google.

Appel par la ville

C'est clair que c'est pas facile de connaitre l'IP de ùmmamie au fond du cantal. Mais apr contre le connais sa ville. Accuweather à recensé les ville, elles portent toutes un numéro. Pas simple donc de s'en servir. C'est la raison pour laquelle Accuweather à créé un point d'entrée par villes. J'ai réussi à le faire marché, bien que je sois dans une ville portant un homonyne bien connu (pour les nancéiens) au kentuchy

http://dataservice.accuweather.com/locations/v1/cities/FR/search?apikey=[REMPLACER ICI VOTRE CLEF API SANS LES CROCHETS]&q=nancy

D'autres exemples

Je vous ai montré ici dex exemples de fonctionnement des API Accuweather, mais des tonnes d'autres appels sont possibles. Accuweather a meme du opérer un classemnt de ses API que vous pouvez retrouver https://developer.accuweather.com/accuweather-locations-api/apis

Quand un paramètre correspond à plusieurs réponses...

C'est notament le cas lorsqu'on recherche par code postaux. En effet, le code postal "54000" ne correspond pas qu'à Nancy, mais aussi à Jaboatao dos Guararapes en amérique du sud ou encore à Tlanepantla de Baz Centro au Mexique ! (on en apprend tous les jours avec les API). Dans ce cas, le retour JSON comporte autant d'entrées que de résultats. C'est donc au développeur à bien traiter le retour JSON afin de prendre la ou les bonnes infos, selon son travail souhaité. Faites donc très attention à ceci.

Accuweather et sa documentation

Alors là, je dois dire, chapeau. Certes de ne m'interesses aux API/Werbservices que depuis peu mais c'est la premièrer fois que je vois un service web aussi bien documenté et très clair ! Et qui plus est, avec la possibilité de tester ses requetes http. BRAVO
Prenons par exemple la doc sur la recherche par code postal,on y retrouve tous les parmètres de la requete :

Screenshot 20181201 123228Rentrez vos paramètres (y compris votre clef API) et cliquez sur le bouton d'envoi

Screenshot 20181201 123603

Le resultat de l'API sera affiché dans la zone inférieur. Mieux encore, la commande cURL est affichée (on y reviendra dans un prochain article)

En un mot : BRAVO ACCUWEATHER pour vos API.

Amusez vous bien