• 6 heures
  • Facile

Ce cours est visible gratuitement en ligne.

Ce cours est en vidéo.

Vous pouvez obtenir un certificat de réussite à l'issue de ce cours.

J'ai tout compris !

Mis à jour le 09/07/2018

Quelques exemples d’API REST

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Commençons par regarder de vraies API REST, et ce que vous pourrez créer avec ! Nous allons voir les API d’Instagram, de Gmail, GitHub, et Weather Underground.

Le plus difficile concernant les API, c'est de comprendre ce qu'elles sont concrètement. C'est un concept très abstrait. C'est pourquoi les exemples suivants utilisent des services qui vous sont familiers afin de vous montrer ce qu'il est possible de faire avec diverses API ; vous n'avez pas besoin de comprendre tous les engrenages techniques pour le moment.

Instagram

L’API d’Instagram permet à votre application d’accéder aux comptes utilisateurs, aux photos, aux tags et plus encore. Voici ci-dessous les différentes méthodes qui permettent d’interagir avec un compte utilisateur :

Comme vous pouvez le voir, votre application peut accéder aux photos et vidéos récentes, celles qu’il a particulièrement aimées, aux likes et commentaires, et plus encore ! Vous pouvez ensuite afficher ces informations dans votre application ou encore les utiliser à des fins de stockage de données, etc.

Voici une requête GET lancée à l’API Instagram pour obtenir les photos d’un certain lieu à partir de sa longitude et sa latitude : dans l’exemple, c’est à New York (40.7127° N, 74.0059° W) :

GET /v1/locations/search?access_token=ACCESS_TOKEN&lat=40.7127&lng=74.0059

Et voici la réponse d’Instagram, sous forme de fichier JSON :

HTTP/1.1 200 OK

{
 "meta": {
   "code": 200
 },
 "data": [
   {
     "latitude": 40.714198749,
     "id": "93496093",
     "longitude": 74.006001183,
     "name": "John's Pizzeria 278 Bleecker St NY, NY"
   },
   {
     "latitude": 40.7142,
     "id": "46371155",
     "longitude": 74.0064,
     "name": "Thunderpocalypse 2012"
   },
   {
     "latitude": 40.714201754,
     "id": "35932492",
     "longitude": 74.006397137,
     "name": "Avenue of the Americas, New York"
   },
   {
     "latitude": 40.71296389,
     "id": "1023103828",
     "longitude": 74.00388611,
     "name": "Manhattan Municipal Building"
   },
   {
     "latitude": 40.71322,
     "id": "92582758",
     "longitude": 74.003963,
     "name": "Sleepers Filming Location"
   },
   {
     "latitude": 40.716833,
     "id": "97921846",
     "longitude": 74.005833,
     "name": "Atera"
   }
 ]
}

L’API offre beaucoup d’autres possibilités, comme retrouver les photoset vidéos populaires ou encore retrouver des photos avec des tags comme “chats” ou “coucher de soleil”.

Pour plus d’informations, vous pouvez aller sur leur documentation ici : https://www.instagram.com/developer/

Gmail

L’API de Gmail tourne autour de 5 aspects principaux : les messages, les libellés, les brouillons, l’historique et les objets. Cela devrait être familier si vous avez déjà utilisé Gmail ou un autre client de messagerie électronique.

D’après la documentation, voilà comment vous pourrez permettre à votre application d’envoyer un mail. C’est un peu tordu et cela demande un peu de programmation de haut-niveau, mais vous n’avez pas besoin de comprendre les termes techniques en anglais - juste que c’est possible !

 

Voici un autre exemple (fourni par Google Developers) de quelque chose que vous serez capable de faire avec leur API :

GET https://www.googleapis.com/gmail/v1/users/me/messages?q="in:sent after:2014/01/01 before:2014/01/30"

Cette requête va demander à Gmail tous les messages qui ont été envoyés entre le 1 janvier 2014 et le 30 janvier 2014 (non, il n’y a pas de mois 30 :). C’est juste que la date dans la requête est au format américain).

Pour avoir plus d’information, vous pouvez consulter la documentation ici : https://developers.google.com/gmail/api

Github

GitHub est une plateforme d’hébergement de code qui est très utilisée par beaucoup de sites web de toutes les tailles. Leur API REST vous permet de suivre l’activité d’un utilisateur, de consulter les bugs d’un dépôt et même de créer un dépôt depuis votre application.

Par exemple, si vous voulez obtenir tous les informations d’un certain utilisateur, vous pouvez utiliser la méthode HTTP “GET” pour les obtenir.

GET /users/:username

Le serveur renverra alors ces informations sous forme de fichier JSON qui contiendra les tous les détails sur l’utilisateur demandé. Vous pouvez alors utiliser ces données dans votre application !

{
  "login": "octocat",
  "id": 1,
  "avatar_url": "https://github.com/images/error/octocat_happy.gif",
  "gravatar_id": "",
  "url": "https://api.github.com/users/octocat",
  "html_url": "https://github.com/octocat",
  "followers_url": "https://api.github.com/users/octocat/followers",
  "following_url": "https://api.github.com/users/octocat/following{/other_user}",
  "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}",
  "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}",
  "subscriptions_url": "https://api.github.com/users/octocat/subscriptions",
  "organizations_url": "https://api.github.com/users/octocat/orgs",
  "repos_url": "https://api.github.com/users/octocat/repos",
  "events_url": "https://api.github.com/users/octocat/events{/privacy}",
  "received_events_url": "https://api.github.com/users/octocat/received_events",
  "type": "User",
  "site_admin": false,
  "name": "monalisa octocat",
  "company": "GitHub",
  "blog": "https://github.com/blog",
  "location": "San Francisco",
  "email": "octocat@github.com",
  "hireable": false,
  "bio": "There once was...",
  "public_repos": 2,
  "public_gists": 1,
  "followers": 20,
  "following": 0,
  "created_at": "2008-01-14T04:33:35Z",
  "updated_at": "2008-01-14T04:33:35Z"
}

Il y a beaucoup d’autres utilités à cette API qui valent la peine d'être étudiées, surtout si vous êtes déjà à l'aise avec les fonctionnalités de GitHub : https://developer.github.com/.

Weather Underground

La dernière API REST que nous allons voir est celle de Weather Underground. Les données sur le temps et la météo peuvent être très utiles dans beaucoup d’applications, et il y a heureusement des services comme celui-ci qui fournissent un accès facile à leurs données et qui peuvent être utilisées dans vos logiciels.

Par exemple, si vous créez une application qui suggère aux utilisateurs les vêtements qu’ils devraient porter pour aller courir, vous aurez besoin de connaître la température, les conditions météorologiques, quand le soleil se lèvera et se couchera, etc., pour permettre à votre logiciel de faire des prédictions. Créer votre propre service météorologique pour recevoir ces informations serait beaucoup trop long et fastidieux ; utiliser les données de cette API pour votre propre utilisation est donc un très bon choix.

Voici un exemple de requête à l’API de Weather Underground pour avoir les conditions météorologiques à San Francisco :

GET http://api.wunderground.com/api/Your_Key/conditions/q/CA/San_Francisco.json

Et voici ce que l’API répond (sous forme de JSON, encore une fois !) :

{
  "response": {
  "version": "0.1",
  "termsofService": "http://www.wunderground.com/weather/api/d/terms.html",
  "features": {
  "conditions": 1
  }
  },
  "current_observation": {
  "image": {
  "url": "http://icons-ak.wxug.com/graphics/wu2/logo_130x80.png",
  "title": "Weather Underground",
  "link": "http://www.wunderground.com"
  },
  "display_location": {
  "full": "San Francisco, CA",
  "city": "San Francisco",
  "state": "CA",
  "state_name": "California",
  "country": "US",
  "country_iso3166": "US",
  "zip": "94101",
  "latitude": "37.77500916",
  "longitude": "-122.41825867",
  "elevation": "47.00000000"
  },
  "observation_location": {
  "full": "SOMA - Near Van Ness, San Francisco, California",
  "city": "SOMA - Near Van Ness, San Francisco",
  "state": "California",
  "country": "US",
  "country_iso3166": "US",
  "latitude": "37.773285",
  "longitude": "-122.417725",
  "elevation": "49 ft"
  },
  "estimated": {},
  "station_id": "KCASANFR58",
  "observation_time": "Last Updated on June 27, 5:27 PM PDT",
  "observation_time_rfc822": "Wed, 27 Jun 2012 17:27:13 -0700",
  "observation_epoch": "1340843233",
  "local_time_rfc822": "Wed, 27 Jun 2012 17:27:14 -0700",
  "local_epoch": "1340843234",
  "local_tz_short": "PDT",
  "local_tz_long": "America/Los_Angeles",
  "local_tz_offset": "-0700",
  "weather": "Partly Cloudy",
  "temperature_string": "66.3 F (19.1 C)",
  "temp_f": 66.3,
  "temp_c": 19.1,
  "relative_humidity": "65%",
  "wind_string": "From the NNW at 22.0 MPH Gusting to 28.0 MPH",
  "wind_dir": "NNW",
  "wind_degrees": 346,
  "wind_mph": 22.0,
  "wind_gust_mph": "28.0",
  "wind_kph": 35.4,
  "wind_gust_kph": "45.1",
  "pressure_mb": "1013",
  "pressure_in": "29.93",
  "pressure_trend": "+",
  "dewpoint_string": "54 F (12 C)",
  "dewpoint_f": 54,
  "dewpoint_c": 12,
  "heat_index_string": "NA",
  "heat_index_f": "NA",
  "heat_index_c": "NA",
  "windchill_string": "NA",
  "windchill_f": "NA",
  "windchill_c": "NA",
  "feelslike_string": "66.3 F (19.1 C)",
  "feelslike_f": "66.3",
  "feelslike_c": "19.1",
  "visibility_mi": "10.0",
  "visibility_km": "16.1",
  "solarradiation": "",
  "UV": "5",
  "precip_1hr_string": "0.00 in ( 0 mm)",
  "precip_1hr_in": "0.00",
  "precip_1hr_metric": " 0",
  "precip_today_string": "0.00 in (0 mm)",
  "precip_today_in": "0.00",
  "precip_today_metric": "0",
  "icon": "partlycloudy",
  "icon_url": "http://icons-ak.wxug.com/i/c/k/partlycloudy.gif",
  "forecast_url": "http://www.wunderground.com/US/CA/San_Francisco.html",
  "history_url": "http://www.wunderground.com/history/airport/KCASANFR58/2012/6/27/DailyHistory.html",
  "ob_url": "http://www.wunderground.com/cgi-bin/findweather/getForecast?query=37.773285,-122.417725"
  }
}

Comme vous pouvez le voir, vous recevez des informations très pratiques sur San Francisco comme la vitesse du vent, les précipitations, la puissance des rayons UV, etc. Vous pouvez recevoir d’autres informations sur les marées, la phase de la lune, la température, et plus encore !

Exemple de certificat de réussite
Exemple de certificat de réussite