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

php debut

$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"].'"›";

php fin

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 :-)