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. GET et POST sont les méthodes les plus fréquemment utilisées, mais d’autres méthodes comme HEAD, PUT, PATCH, DELETE, CONNECT, OPTIONS ET TRACE peuvent également être prises en charge. La documentation de l’API montre les méthodes disponibles prises en charge par l’API. Pour en savoir plus, consultez le site w3schools.com
- 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. Une fois que l’API a répondu, elle se déconnecte et ne conserve aucune information sur le client dans sa mémoire active. 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. Pour réduire la bande passante, la latence et la charge du serveur, une API doit pouvoir identifier les ressources pouvant être mises en cache, déterminer qui peut les mettre en cache et décider pendant combien de temps elles peuvent rester dans le cache.
- 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} de Uptrends API version 4.
- Auto-descriptif: Comprend des métadonnées telles que Content-Type qui décrit comment interpréter la réponse. En savoir plus sur les types MIME.
- 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. En savoir plus sur HATEOAS.
- 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.
Maintenir la disponibilité et la rapidité des API
Les utilisateurs d’API dépendent des API pour le bon fonctionnement de leurs sites web, de leurs applications et de leurs appareils. Les API non disponibles ou lentes provoquent des défaillances et des frustrations chez les utilisateurs. Les fournisseurs d’API ainsi que les consommateurs doivent surveiller pour détecter les problèmes et agir rapidement en cas de panne ou de baisse des performances.
Surveillance de la disponibilité de l’API
Même une coupure courte peut entraîner des pannes de sites web, d’applications et d’appareils. Les éditeurs d’API doivent s’assurer que le système dispose de la redondance nécessaire pour éviter les temps d’arrêt, et cependant des pannes se produisent. Les éditeurs d’une API ont une responsabilité envers leurs utilisateurs, s’assurer que l’API répond sans interruption à ceux qui l’utilisent. Ceux qui dépendent des API ont intérêt à protéger leur activité et leurs utilisateurs en surveillant les API essentielles à leur service. La surveillance API synthétique propose deux solutions : Surveillance d’API multi-étapes et Surveillance de la disponibilité de service web.
Vérification de la disponibilité et des performances de base des API
Une surveillance performante de la disponibilité nécessite des tests fréquents. Pour maintenir une haute disponibilité, les tests doivent avoir lieu une fois par minute. Un simple moniteur de service web HTTPS/HTTP est une solution parfaite pour vérifier la disponibilité.
- Vérifiez chaque minute
- Vérifiez de l’extérieur de divers emplacements dans le monde
- Vérifiez l’authentification de base
- Vérifiez le temps de réponse
- Vérifiez le contenu de la réponse
- Vérifiez les codes de réponse spécifiques
La surveillance de la disponibilité vous rassure que l’API réponde à la requête et vous renseigne sur le temps de la réponse. Avec une vérification de contenu et une vérification du code de réponse, vous saurez si l’API a répondu avec le résultat attendu. En cas d’erreur, le système d’alerte informe l’équipe du problème. En outre, les rapports du moniteur fournissent les données nécessaires pour étayer tout accord de niveau de service.
La mise en place de moniteurs de service web pour chaque point de terminaison (endpoint) garantit qu’ils restent disponibles, mais ces contrôles peuvent ne pas suffire à prouver qu’une API fonctionne correctement. La surveillance API multi-étapes peut gérer des vérifications API plus compliquées.
Surveillance avancée des API
Un test approfondi d’une API nécessite la gestion de scénarios plus complexes tels que ceux qui nécessitent des redirections, la validation des données et la réutilisation des données. La Surveillance API multi-étapes fait passer la surveillance de la disponibilité au niveau supérieur.
- Gestion des redirections
- Prise en charge des authentifications de base, NTLM (Windows) et Digest
- Utiliser des certificats clients
- Déclaration des variables: prédéfinis, assigner des valeurs du corps de la réponse, utiliser des variables automatiques
- Réutiliser les valeurs dans des requêtes ultérieures
- Utiliser des opérateurs de comparaison et faire des assertions sur le contenu des réponses et les performances
- Capturez des valeurs numériques de la réponse pour les rapports
La surveillance API multi-étapes permet de vérifier les fonctionnalités complètes des transactions de l’API, fournit des données de performances pour l’ensemble de la transaction et, avec des assertions supplémentaires, mesure la rapidité des requêtes individuelles.
Points clés
- L’API REST est un style architectural qui permet aux logiciels de communiquer entre eux, quels que soient les systèmes d’exploitation.
- Les API REST fonctionnent sur la base d’une relation client/serveur en fournissant une interface uniforme.
- Une API REST a une interface uniforme qui est basée sur des ressources, est auto-descriptif et utilise HATEOAS.
- HATEOAS (Hypermédia comme moteur d’état de l’application) signifie que la réponse de l’API comprend des données qui donnent accès à d’autres méthodes disponibles.
- Les API REST sont sans état, ce qui signifie que le serveur ne maintient pas de connexions ou de sessions entre les appels.
- Les API REST sont des systèmes multicouches pour faciliter l’évolutivité.
- Le maintien d’une haute disponibilité et de réponses rapides est essentiel pour une API REST.
- La surveillance d’API vérifie la disponibilité et les performances et envoie des notifications lorsqu’elle détecte des problèmes.
- Les moniteurs HTTPS/HTTP du service web sont excellents pour surveiller la disponibilité.
- La surveillance API multi-étapes vérifie les interactions complètes de l’API pour la disponibilité, la fonction et les performances.
Essayez Uptrends gratuitement
Découvrez comment Uptrends API Monitoring peut vous aider à surveiller vos API et plus encore avec un essai gratuit de 30 jours. Aucune carte de crédit nécessaire !
Allez-y !