À propos d'API Gateway

Les services Web offrent aujourd'hui une grande variété de fonctionnalités, allant des services de cartes, de météo et d'images aux jeux, aux enchères et à de nombreux autres types de services. Les fournisseurs de services disposent de nombreuses options pour implémenter, déployer et gérer leurs services. Par exemple, un service peut être développé en Java ou en .NET, tandis qu'un autre utilise Node.js.

Les implémentations de backend peuvent également varier pour un seul fournisseur de services. Un fournisseur de services peut avoir des services anciens implémentés à l'aide d'une architecture et de nouveaux services implémentés à l'aide d'une architecture complètement différente.

Quelle que soit l'implémentation, les services Web nécessitent tous un moyen de les rendre disponibles pour les développeurs d'applications. Ces services sont souvent exposés sous la forme d'un ensemble de points de terminaison HTTP. Selon le service, le point de terminaison peut également renvoyer des données au format XML ou JSON à l'application cliente.

À propos des services Google Cloud Platform

Lorsque vous développez vos services sur Google Cloud Platform (GCP), vous disposez de nombreuses options pour les implémenter, telles que les fonctions Cloud Run, Cloud Run et l'environnement standard App Engine. La flexibilité de GCP signifie que vous pouvez choisir l'architecture backend adaptée aux besoins de votre service.

Les développeurs d'applications sont les clients des services de backend. Les développeurs d'applications utilisent vos services pour implémenter des applications pour appareils mobiles ou tablettes, par le biais d'applications exécutées dans un navigateur ou de tout autre type d'application pouvant envoyer une demande de service.

Exposer des services publiquement sur le Web peut s'avérer difficile. Pour ce faire, un fournisseur de services doit:

  • Authentifier l'accès au service
  • Sécuriser le transport des données entre les clients et le service
  • Protéger le service contre les attaques malveillantes
  • faire évoluer le service à mesure que l'utilisation augmente ou diminue.
  • Fournir à l'équipe d'exploitation du backend un moyen de surveiller et de suivre l'utilisation du service
  • Suivre l'utilisation pour fournir des informations de facturation précises

De plus, si vos services utilisent des interfaces et des protocoles différents, l'accès à ces services peut représenter un défi pour les développeurs d'applications. Les développeurs doivent non seulement apprendre et comprendre chaque interface de service, mais aussi surveiller les différents services pour détecter les modifications, puis mettre à jour et redéployer les applications si nécessaire.

API Gateway

API Gateway vous permet de fournir un accès sécurisé à vos services via une API REST bien définie et cohérente entre tous vos services, quelle que soit leur implémentation. Une API cohérente :

  • permet aux développeurs d'applications de consommer facilement vos services ;
  • permet de modifier la mise en œuvre du service de backend sans affecter l'API publique ;
  • vous permet de tirer parti des fonctionnalités de scaling, de surveillance et de sécurité intégrées à Google Cloud Platform (GCP).

L'image suivante montre les développeurs d'applications qui envoient des requêtes à vos services de backend via API Gateway :

Envoyer des requêtes de services Web via API Gateway

Avec API Gateway, les développeurs d'applications utilisent vos API REST pour implémenter des applications. Étant donné que toutes les API sont hébergées sur API Gateway, les développeurs d'applications bénéficient d'une interface cohérente dans tous les services de backend.

En déployant vos API sur API Gateway, vous pouvez mettre à jour le service de backend, voire déplacer le service d'une architecture à une autre, sans avoir à modifier l'API. Tant que l'API de votre service reste cohérente, les développeurs d'applications n'auront pas à modifier les applications déployées en raison de modifications sous-jacentes apportées à votre backend.

API Gateway est un système de gestion d'API distribué qui fournit également des fonctionnalités d'hébergement, de journalisation, de surveillance et d'autres pour vous aider à créer, partager, gérer et sécuriser vos API. API Gateway est intégré de manière native à GCP et gère toutes les tâches liées au traitement des appels d'API simultanés, y compris la gestion du trafic, l'autorisation et la surveillance.

Qu'est-ce qu'une API ?

Une API est une interface qui permet à une application de consommer facilement les fonctionnalités ou les données d'une autre application. En définissant des points d'entrée stables, simples et bien documentés, les API permettent aux développeurs d'accéder facilement à la logique d'application créée par d'autres développeurs et de la réutiliser.

Par exemple, le tableau suivant décrit un exemple d'API REST pouvant renvoyer des informations sur un livre :

Propriété Valeur Description
URL https://www.mybooksapi.com/books/info Renvoyez le titre, l'auteur et la date de publication d'un livre en fonction de son numéro ISBN (International Standard Book Number).
Verbe HTTP GET Envoyez une requête GET à l'API.
Paramètre de requête isbn Transmettez le numéro ISBN du livre, c'est-à-dire l'ID du livre.
Données de réponse
{
  "title" : "book_title",
  "author" : "author_name",
  "published" : "publish_date"
}
Objet JSON contenant des informations sur un livre.
Code de réponse 200 Demande transmise.

À l'aide de ces informations, vous pouvez envoyer la requête cURL suivante à cette API pour obtenir des informations sur un livre :

curl -X GET https://www.mybooksapi.com/books/info?isbn=0385504217

Étant donné que ce service dispose d'une API bien définie, y compris une description des formats de données et des codes de réponse HTTP, le développeur de l'application n'a pas besoin de connaître l'implémentation sous-jacente du service de backend.

Étant donné que les applications qui consomment des API sont sensibles aux modifications, les API impliquent également un contrat entre les fournisseurs et les consommateurs d'API. Le contrat garantit que l'API évoluera de manière prévisible au fil du temps. Par exemple, l'API Books peut être mise à jour pour ajouter des paramètres de requête supplémentaires, tels que title ou author, ou pour modifier la réponse JSON afin d'ajouter des informations supplémentaires sur le livre.

Définir une API

Vous définissez une API déployée sur API Gateway en tant que spécification OpenAPI 2.0. Les principaux composants d'une définition d'API sont les suivants :

  • URL, ou point d'entrée, du service de backend
  • Le format des données transmises dans le cadre d'une requête adressée à l'API
  • Le format des données renvoyées par le service dans la réponse de l'API
  • Mécanisme d'authentification utilisé pour contrôler l'accès au service

Après avoir défini votre API, utilisez l'interface de ligne de commande gcloud pour l'importer dans une configuration d'API sur GCP :

Utilisez gcloud pour importer la spécification API dans GCP.

Déployer une configuration d'API sur API Gateway

Pour créer votre API, vous devez déployer la configuration de l'API sur API Gateway. Exécutez la commande gcloud pour déployer la configuration d'API :

Utilisez gcloud pour déployer la spécification OpenAPI.

Une fois la configuration de l'API déployée, vos clients peuvent effectuer des appels REST vers l'API.

Gérer une API

Une fois déployée et exécutée, vous pouvez surveiller l'activité de l'API, telle que les métriques d'utilisation et les journaux. Lorsqu'un client envoie une requête à votre API, API Gateway enregistre des informations sur la requête et la réponse. API Gateway suit également la latence, le trafic et les erreurs.

Au fil du temps, vous pouvez souhaiter mettre à jour une API déployée pour ajouter de nouvelles fonctionnalités, améliorer les performances ou résoudre des problèmes liés à l'API. Pour mettre à jour une API déployée, il vous suffit de mettre à jour la spécification OpenAPI de la définition de l'API, puis d'importer et de redéployer l'API.

Contrôler l'accès à l'API

API Gateway vous permet de configurer l'API de façon à exiger une authentification pour que le client puisse accéder à l'API. Actuellement, API Gateway est compatible avec le même mécanisme d'authentification et la même syntaxe que ceux utilisés par Cloud Endpoints, y compris :

Vous pouvez également utiliser la console Google Cloud Platform pour partager votre API avec d'autres développeurs afin qu'ils puissent l'activer et générer des clés d'API pour l'appeler.

En plus de définir un mécanisme d'authentification pour vérifier l'identité d'un utilisateur, votre API doit également décider de ce que l'utilisateur authentifié peut faire avec votre API. Pour en savoir plus, consultez le guide d'authentification GCP.

Étape suivante