À propos d'API Gateway

Les services Web actuels offrent une grande variété de fonctionnalités, allant des services de cartographie, 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 .NET, tandis qu'un autre utilise Node.js.

Les implémentations de backend peuvent également varier pour un même fournisseur de services. Un fournisseur de services peut avoir des services existants 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 rendre les services 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

Lorsque vous développez vos services sur Google Cloud, vous disposez de nombreuses options pour les implémenter, comme les fonctions Cloud Run, Cloud Run et l'environnement standard App Engine. La flexibilité de Google Cloud vous permet de choisir l'architecture de backend adaptée aux exigences de votre service.

Les développeurs d'applications sont les clients des services de backend. Les développeurs d'applications consomment vos services pour implémenter des applications pour appareils mobiles ou tablettes, via des applications s'exécutant dans un navigateur ou via tout autre type d'application pouvant envoyer une demande de service.

Il peut être difficile d'exposer publiquement des services sur le Web. Pour réussir, 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 des opérations de 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, les développeurs d'applications peuvent avoir du mal à y accéder. Les développeurs doivent non seulement apprendre et comprendre chaque interface de service, mais aussi surveiller les différents services pour détecter les changements, 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 constante entre tous vos services, quelle que soit leur implémentation. Une API constante :

  • 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.

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

Effectuer des requêtes de service Web via API Gateway.

À l'aide d'API Gateway, les développeurs d'applications utilisent vos API REST pour implémenter des applications. Comme toutes les API sont hébergées sur API Gateway, les développeurs d'applications bénéficient d'une interface cohérente pour tous les services de backend.

En déployant vos API sur API Gateway, vous pouvez mettre à jour le service de backend, voire le déplacer 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'ont pas besoin de modifier les applications déployées en raison des modifications sous-jacentes apportées à votre backend.

API Gateway est un système de gestion d'API distribué qui fournit également l'hébergement, la journalisation, la surveillance et d'autres fonctionnalités pour vous aider à créer, partager, gérer et sécuriser vos API. API Gateway est intégré de manière native à Google Cloud 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 les fonctionnalités ou les données d'une autre application. En définissant des points d'entrée stables et bien documentés, les API permettent aux développeurs d'accéder à 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'exemple suivant montre une requête curl qui peut être utilisée pour obtenir des informations sur un livre avec le numéro ISBN spécifié :

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

Comme ce service dispose d'une API bien définie, y compris d'une description des formats de données et des codes de réponse HTTP, le développeur d'applications n'a pas besoin d'en savoir plus sur 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 modifier le JSON de réponse pour ajouter des informations 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 Google Cloud :

Utilisez gcloud pour importer la spécification d'API dans Google Cloud Platform.

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 à l'API.

Gérer une API

Une fois déployée et en cours d'exécution, vous pouvez surveiller l'activité de l'API, comme 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 être amené à 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, vous devez mettre à jour la spécification OpenAPI de la définition de l'API, puis importer et 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. 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 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 valider 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 la page Méthodes d'authentification chez Google.

Étapes suivantes