Introduction aux API
Les API, ou Interfaces de Programmation d’Application, jouent un rôle essentiel dans le développement de logiciels et d’applications. Elles permettent aux développeurs d’accéder à des fonctionnalités et des données externes, de manière structurée, afin de les intégrer dans leurs propres applications.
Les API facilitent ainsi l’interopérabilité entre différents systèmes informatiques.
I Comprendre les bases des API
1.1 Qu’est-ce qu’une API ?
- Une API est un ensemble de règles, de protocoles et de définitions qui permettent à différentes applications de communiquer entre elles.
- Elle définit les méthodes et les données que les développeurs peuvent utiliser pour interagir avec un service ou une ressource.
1.2 Pourquoi les API sont-elles importantes ?
- Les API permettent la réutilisation de code et l’intégration de fonctionnalités tierces.
- Elles facilitent la communication entre différentes applications, systèmes et services.
- Les API sont essentielles pour le développement d’applications modernes, telles que les applications mobiles, les applications web et les systèmes d’entreprise.
1.3 Les Types d’API
- API Web : Utilisées pour interagir avec des services en ligne via HTTP.
Exemples : les API de médias sociaux, de paiement en ligne, etc. - API REST : Un style d’API web basé sur les opérations HTTP standard (GET, POST, PUT, DELETE).
- API SOAP : Un protocole basé sur XML pour échanger des informations structurées entre applications.
- API système : Permettent aux applications d’interagir avec le système d’exploitation sous-jacent.
Les API peuvent donc être pour des sites web (Google Map, Skyscanner, Twitter API) ou pour les mobiles (météo, paiement mobile, Uber, Google Maps) mais aussi pour des application desktop (Google sheets API, API d’IA, API système)

II Utiliser les API dans le Développement Logiciel
2.1 Comment Utiliser une API ?
- Pour utiliser une API, un développeur doit connaître sa documentation, qui explique comment interagir avec l’API, quelles sont les requêtes possibles, etc.
2.2 Exemples d’Utilisation d’API
- Exemple 1 : Intégration de la fonctionnalité de géolocalisation d’un service tiers dans une application de cartographie.
- Exemple 2 : Utilisation d’une API de paiement pour permettre les transactions en ligne.
- Exemple 3 : Intégration de l’authentification via une API de médias sociaux.
2.3 Mécanismes d’Authentification
- Les API peuvent exiger une authentification pour garantir la sécurité. Les mécanismes courants incluent l’utilisation de clés d’API et de jetons d’authentification.
Mise en pratique :
Vous allez utiliser l’API mis en place par la ville de Montpellier : https://portail-api.montpellier3m.fr/
Etudié la documentation de l’API. On va se concentrer sur la disponibilité des vélos Vélomagg.
Vous allez construire un mini site web en Python grâce à Flask et Follium.
Flask permet de faire des site web simple en passant par Python.
Follium permet de créer des cartes interactives.
Exercice 1 :
En Python (sous Pycharm) et en passant par l’API ecrire un script veloInfos.py pour afficher simplement le fichier JSON que vous avez récupéré.
D’après la documentation le lien de l’API est : https://portail-api-data.montpellier3m.fr/bikestation
Le but du script est simple :
Récupérer l’intégralité des données de l’API VéloMagg et
afficher le JSON complet, pour analyser sa structure.
Pour récupérer le code d’une URI vous aurez besoin de la bibliothèque : requests requests : bibliothèque qui permet d’envoyer des requêtes HTTP (GET, POST, etc.).
Elle facilite l’accès à une API web.
Comme la réponse que fournit cette API est sous la format JSON.
Vous devrez utiliser la bibliothèque : jsonjson : utilisé pour afficher un JSON bien formaté et lisible.
C’est la première étape indispensable avant de coder une API Flask qui extrait seulement les champs utiles.
Vous devriez obtenir ceci dans la console PyCharm
Exercice 2 :
Maintenant nous allons essayer de mettre ça en forme en passant par une page Web.
Nous allons donc récupérer les informations en passant par l’API (exercice1) et affiché les résultats dans une page Web en utilisant Flask.
Qu’est-ce que Flask ?
Flask est un micro-framework web Python.
Il permet de créer facilement des applications web, des API REST et des services back-end.
Caractéristiques principales :
-
léger : peu de modules imposés
-
flexible : on ajoute uniquement ce dont on a besoin
-
simple à comprendre : structure claire, peu de contraintes
-
idéal pour apprendre : routes, réponses HTTP, templates, JSON…
Flask est très utilisé en entreprise pour prototyper rapidement des services web.
Vous allez donc étudier comment fonctionne Flask et écrire un script veloWeb.py qui va ouvrir un serveur Web et produire une page affichant les résultats.
Exemple de résultats :
Exercice 3 :
Maintenant je vous demande de placer ces stations de vélo en utilisant Folium et Flask.
Vous avez les coordonnées GPS des stations à vous de jouer.
Vous devriez obtenir ceci :
III Développer ses propres API
3.1 Création d’API
- Les développeurs peuvent également créer leurs propres API pour permettre à d’autres applications d’accéder à leurs fonctionnalités ou données.
- Les API sont créées en exposant des points d’accès (endpoints) avec des méthodes spécifiques.
3.2 Documentation des API
- Une documentation détaillée est essentielle pour aider les autres développeurs à utiliser votre API. Elle doit expliquer comment effectuer des requêtes, quelles données sont renvoyées, etc.
Conclusion
Les API sont des éléments fondamentaux du développement logiciel moderne. Elles permettent l’intégration, la réutilisation de code et l’interopérabilité entre différentes applications et services. Comprendre comment utiliser et créer des API est une compétence précieuse pour tout développeur logiciel.
Voyons maintenant une API REST
Les applications modernes sont souvent développées autour d’une API REST et différents clients (web, mobile, desktop) qui s’authentifient et communiquent avec elles.
REST API (Representational State Transfer Application Program Interface) est un style architectural qui permet aux logiciels de communiquer entre eux sur un réseau ou sur un même appareil. Le plus souvent les développeurs utilisent des API REST pour créer des services web. Souvent appelés services web RESTful, REST utilise des méthodes HTTP pour récupérer et publier des données entre un périphérique client et un serveur.
En utilisant le protocole HTTP, les REST API permettent aux logiciels d’un appareil de communiquer avec les logiciels d’un autre appareil (ou du même appareil) même s’ils utilisent des systèmes d’exploitation et des architectures différents.
- Le client peut demander des ressources avec un langage que le serveur comprend, et le serveur renvoie la ressource avec un langage que le client accepte.
- Le serveur renvoie la ressource au format JSON (JavaScript Object Notation), XML (Extensible Markup Language) ou texte, mais de nombreuses API prennent en charge d’autres langages.
Qu’entendons-nous par style architectural REST ?
REST est un ensemble de principes directeurs auxquels un développeur doit adhérer avant de pouvoir considérer son API comme « RESTful ». Les principes ne disent rien sur la façon de mettre en œuvre l’API.
- Architecture client-serveur: Les clients de l’API utilisent des appels HTTP pour demander une ressource (une méthode GET) ou envoyer des données au serveur (une méthode POST), ou l’une des autres méthodes HTTP prises en charge par l’API.
- Sans état: Une application sans état ne maintient pas de connexion ni ne stocke d’informations entre deux requêtes du même client. Un client fait une requête, l’API exécute l’action définie dans la requête et répond. L’API traite chaque requête comme une première demande.
- Avec mise en cache: Une REST API doit normalement permettre la mise en cache des données fréquemment demandées.
- Interface uniforme: Le client interagit avec le serveur selon une manière définie, indépendamment de l’appareil ou de l’application.
- Identification des ressources: : L’API doit avoir un URI (identifiant de ressource uniforme) spécifique pour chaque ressource, tel que /monitor/{monitorGuid}.
- Auto-descriptif: Comprend des métadonnées telles que Content-Type qui décrit comment interpréter la réponse.
- HATEOAS (Hypermédia comme moteur d’état de l’application) : la réponse du serveur comprend les URI des méthodes supplémentaires auxquelles le client peut accéder à l’aide des données de réponse.
- Système en couches: Une API peut avoir plusieurs couches, telles que des serveurs proxy ou des dispositifs de répartition de charge, et le serveur d’extrémité peut déployer des serveurs supplémentaires pour formuler une réponse. Le client ne sait pas quel serveur répond à la requête. Un système en couches rend une API plus évolutive.
- Code sur demande (facultatif): L’API peut envoyer du code exécutable tel que des applets Java ou JavaScript.
Qu’est-ce qu’une ressource web ?
Une ressource web est essentiellement tout ce avec quoi un client peut interagir sur le web. Le terme peut s’appliquer à un fichier tel qu’un document Word, une image, du HTML ou une vidéo, mais la ressource peut être plus abstraite et inclure des éléments réels. Une ressource peut également être un service tel que Google Maps ou des services financiers.
C’est le développeur de l’API qui décide quels formats seront pris en charge pour la réponse. Par exemple, un serveur peut répondre avec JSON, XML ou texte. L’API doit pouvoir formater la réponse en fonction des besoins du client.
Exemples d’REST API
Presque tout ce qui se passe sur Internet implique des API. Les API fonctionnent en arrière-plan pour effectuer des tâches telles que la validation d’adresses, le traitement des cartes de crédit, la réservation ou la planification de rendez-vous.
Le United States Postal System (service postal des États-Unis) publie une API qui permet aux entreprises de gérer leurs besoins postaux tels que la validation des adresses, la récupération des codes postaux, le calcul des frais de port, l’obtention des données de suivi, la génération d’étiquettes d’expédition et la planification de la collecte du courrier.
Les grands magasins Macy fournissent une API aux partenaires pour effectuer des démarches telles que chercher dans l’inventaire de Macy, interagir avec les registres de cadeaux, vérifier les événements du magasin et obtenir des coupons.
L’API des théâtres AMC permet aux développeurs d’applications tierces d’accéder à leur système de réservation pour accéder aux horaires, acheter des billets et commander des services.
L’API Graph de Facebook permet aux applications d’interagir avec l’application Facebook, notamment pour publier des messages, de gérer des annonces et de collecter des données.
Un point à retenir : il n’est pas rare qu’une API utilise une autre API. Par exemple, l’API des théâtres AMC utilise une autre API pour traiter les paiements par carte de crédit.
Exemple d’un lien d’une API pour le cours du Bit Coin :
https://min-api.cryptocompare.com/data/price?fsym=BTC&tsyms=EUR
Mise en pratique :
Lien du TP : https://waytolearnx.com/2019/07/creer-et-utiliser-une-api-rest-en-php.html
Quelles sont les failles ou attaques dont peut être victime les API ?
Correction :
Ce contenu est réservé aux membres du site. Si vous êtes un utilisateur existant, veuillez vous connecter. Les nouveaux utilisateurs peuvent s'inscrire ci-dessous.


