La problématique :
Aujourd'hui, j'a déniché une API plutôt marrante, relativement facile à manipuler et plutot sympa : l'affichage d'images de la NASA. Rien que cela. Le principe est super simple : on attaque un service web qui retourne un fichier XML contenant une URL de l'image, que l'on intègre à une page web. Aller on y va en détail :
Le service interrogé : la NASA
La NASA fourni une documentation riche en informations, mais pas aussi bien faite, à mon goût que la doc d'Accuweather que nous avions vu la semaine dernière. Toute cette documentation se retrouve sur la page https://api.nasa.gov/api.html
Afin de pouvoir faire des tests, la NASA fournit une clef API pour vos développements. Son utilisation durant mon développement ne m'a prosé aucun problème.
Le résultat
Détaillons le code
$url = "https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY";
$t = array();
$json=file_get_contents($url);
$tt = json_decode($json,true);
echo "Copyright : ".$tt["copyright"];
echo "Date : ".$tt["date"];
echo "Explications : ".$tt["explanation"]
echo "URL de l'image Haute définition : ".$tt["hdurl"];
echo "Type de média : ".$tt["media_type"];
echo "Version de service : ".$tt["service_version"];
echo "Titre : ".$tt["title"]
echo "URL SD de l'image : ".$tt["url"]."";
echo "‹img src="'.$tt["url"].'"›";
Explications
Le principe est simple : j'affecte dans une variable $url, la chaine de caractères qui va définir le webservice souhaité, je définis ligne 2 un tableau et ligne 3, je charge le contenu du fichier spécifié dans la variable $url, dans une variable json (vous l'aurez compris, on récupère un json). Je décode ce json avec json_decode et le deuxième paramètre "true", ce qui me permet de récupérer les valeurs dans un tableau associatif ($tt). Pour chacune des valeurs de ce tableau, j'affiche son contenu.
Notez que le code d'accès est "DEMO_KEY" car cette api est utilisée ici que dans le cadre d'une démonstration. Demandez votre clef API pour l'utiliser
Bon code :-)