À propos d'API Gateway

Les services Web offrent aujourd'hui une grande variété de fonctionnalités : cartes, météo, images, jeux, enchères et bien d'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 seul fournisseur de services. Un fournisseur de services peut avoir implémenté d'anciens services à l'aide d'une architecture unique, tandis que de nouveaux services peuvent être 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 mettre à la disposition des développeurs d'applications. Ces services sont souvent exposés sous la forme d'un ensemble de points de terminaison HTTP. En fonction du 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), de nombreuses options s'offrent à vous pour les implémenter, par exemple Cloud Functions, Cloud Run et l'environnement standard App Engine. La flexibilité de GCP vous permet de choisir l'architecture de backend adaptée à vos exigences de service.

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

Exposer des services publiquement sur le Web peut s'avérer difficile. Pour cela, 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
  • Adapter le service à la hausse ou à la baisse de l'utilisation
  • 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

En outre, si vos services utilisent des interfaces et des protocoles différents, accéder à 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 ils doivent également surveiller les modifications apportées aux différents services, 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, cohérente sur l'ensemble de vos services, quelle que soit leur mise en œuvre. 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 service Web via API Gateway

À l'aide d'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 voient une interface cohérente sur l'ensemble des services de backend.

En déployant vos API sur API Gateway, vous pouvez mettre à jour le service de backend, ou même 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'auront pas à modifier les applications déployées en raison des modifications sous-jacentes sur 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 bien plus pour vous aider à créer, partager, gérer et sécuriser vos API. API Gateway est intégrée 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 traitée.

À 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, incluant 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 savoir quoi que ce soit sur l'implémentation sous-jacente du service de backend.

Étant donné que les applications qui utilisent les API sont sensibles aux modifications, les API impliquent également un contrat entre les fournisseurs d'API et les utilisateurs d'API. Le contrat garantit que l'API changera de manière prévisible au fil du temps. Par exemple, l'API Book peut être mise à jour pour ajouter des paramètres de requête supplémentaires, tels que title ou author, ou modifier la réponse JSON pour 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
  • Le 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 de l'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é et exécuté, 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 souhaiterez peut-être 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 pour 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.

Étapes suivantes