Concevoir des API sur AWS

Développer des applications sur AWS

Ricardo Sueiras

Principal Technologist

API Gateway

 

Qu'est-ce qu'une API ?

 

  • Amazon API Gateway : service managé pour créer des API.
  • Concevez, déployez, gérez et sécurisez vos API.
Développer des applications sur AWS

Capacités d'Amazon API Gateway

 

Fonctionnalités des API

  • Implémentez différents types d'API.
Développer des applications sur AWS

Capacités d'Amazon API Gateway

 

Fonctionnalités des API

  • Implémentez différents types d'API.
  • Intégrez des services backend.
Développer des applications sur AWS

Capacités d'Amazon API Gateway

 

Fonctionnalités d'API Gateway

  • Implémentez différents types d'API.
  • Intégrez des services backend.
  • Sécurisez l'accès aux API.
Développer des applications sur AWS

Capacités d'Amazon API Gateway

 

Fonctionnalités d'API Gateway

  • Implémentez différents types d'API.
  • Intégrez des services backend.
  • Sécurisez l'accès aux API.
  • Limitez le débit pour protéger les backends.
Développer des applications sur AWS

Capacités d'Amazon API Gateway

 

Fonctionnalités d'API Gateway

  • Implémentez différents types d'API.
  • Intégrez des services backend.
  • Sécurisez l'accès aux API.
  • Limitez le débit pour protéger les backends.
  • Transformez les charges utiles des requêtes et réponses.
Développer des applications sur AWS

Capacités d'Amazon API Gateway

 

Fonctionnalités d'API Gateway

  • Implémentez différents types d'API.
  • Intégrez des services backend.
  • Sécurisez l'accès aux API.
  • Limitez le débit pour protéger les backends.
  • Transformez les charges utiles des requêtes et réponses.
  • Publiez des API pour les consommateurs.
Développer des applications sur AWS

Capacités d'Amazon API Gateway

 

Fonctionnalités d'API Gateway

  • Implémentez différents types d'API.
  • Intégrez des services backend.
  • Sécurisez l'accès aux API.
  • Limitez le débit pour protéger les backends.
  • Transformez les charges utiles des requêtes et réponses.
  • Publiez des API pour les consommateurs.
  • Gérez le cycle de vie : versions, déploiement, alias.
Développer des applications sur AWS

Types d'API

  • API Gateway prend en charge trois types d'API :
    • REST APIs
    • HTTP APIs
    • WebSocket APIs

 

Types d'API

Développer des applications sur AWS

Points de terminaison d'API Gateway

  • Les points de terminaison contrôlent l'accès client à votre API.
  • Edge-optimized : CloudFront géré par AWS pour une faible latence mondiale.
  • Regional : déployé dans une Région AWS spécifique.
  • Private : accessible uniquement via AWS PrivateLink.
  • Les endpoints privés restent hors d'internet public.

 

Endpoints

Développer des applications sur AWS

REST APIs

  • Offre API Gateway la plus riche en fonctionnalités.
  • Modèle synchrone requête/réponse.

 

API REST

Développer des applications sur AWS

Cas d'usage des REST APIs

 

Cas d'usage API REST

  • API d'entreprise nécessitant une gestion de cycle de vie complète.
  • API exigeant des contrôles de sécurité avancés.
  • Écosystèmes développeurs tiers avec clés d'API et plans d'usage.
  • Intégrations directes aux services AWS sans Lambda.
Développer des applications sur AWS

Prise en charge des REST APIs par API Gateway

 

Support API REST

  • Validation des requêtes.
  • Clés d'API.
  • Plans d'usage et limitation de débit.
  • Mise en cache des réponses avec TTL configurable.
  • Transformation requête/réponse via modèles VTL.
  • Authentification IAM (Signature V4).
  • Autorisateurs Lambda, pools d'utilisateurs Cognito.
Développer des applications sur AWS

Prise en charge des REST APIs par API Gateway

 

 

Support API REST

  • Trois types d'endpoints pris en charge :
    • Edge-optimized
    • Regional
    • Private
  • Protection contre les attaques web avec AWS WAF.
  • Déploiements canary.
  • Observabilité via AWS X-Ray et journaux CloudWatch.
Développer des applications sur AWS

Compromis des REST APIs

  • Plus coûteuses que les HTTP APIs.
  • Légèrement plus de latence.

 

Compromis REST

Développer des applications sur AWS

HTTP APIs

  • Optimisées pour performances et coûts plutôt que la richesse fonctionnelle :
    • Performances
    • Coûts

 

HTTP APIs

Développer des applications sur AWS

Cas d'usage des HTTP APIs

  • Charges serverless et API sur Lambda.
  • Microservices et proxys légers.
  • Applications sensibles à la latence.
  • API utilisant l'authentification OAuth 2.0 / OIDC.

 

Cas d'usage HTTP APIs

Développer des applications sur AWS

Prise en charge des HTTP APIs par API Gateway

 

Fonctionnalités HTTP API

  • Intégrations proxy Lambda et autorisateurs.
  • Autorisation JWT/OIDC native (Cognito, Auth0, Okta).
  • CORS intégré au niveau API.
  • Intégrations VPC privées via VPC Link.
  • Mappage basique des paramètres : en-têtes, chaînes de requête, chemins.
Développer des applications sur AWS

Compromis des HTTP APIs

 

Limites HTTP API

  • Les HTTP APIs ne prennent PAS en charge :

    • Clés d'API
    • Plans d'usage
    • Validation des requêtes
    • Mise en cache des réponses
    • Traces avec AWS X-Ray
    • Transformation VTL des charges utiles

    • Pris en charge uniquement :

      • Endpoints edge ou privés (régional uniquement)
Développer des applications sur AWS

WebSocket APIs

 

WebSocket APIs

  • Communication bidirectionnelle entre clients et serveurs.
  • Connexion maintenue ouverte, contrairement aux REST et HTTP APIs.
  • Les serveurs peuvent pousser des données aux clients connectés.
Développer des applications sur AWS

Cas d'usage des WebSocket APIs

  • Applications de chat.
  • Notifications en temps réel.
  • Tableaux de bord en temps réel.

 

cas d'usage

Développer des applications sur AWS

Prise en charge des WebSocket APIs par API Gateway

  • Transformations des données de charge utile.
  • Validation des requêtes.
  • Routes intégrées spéciales :
    • $connect : le client établit une connexion
    • $disconnect : le client se déconnecte
    • $default : aucune route correspondante trouvée

 

Fonctionnalités WebSocket API

Développer des applications sur AWS

Mise en cache d'API

  • Mettre en cache les réponses réduit la charge des backends.
  • Améliore les performances des API.
  • Cas d'usage typiques :
    • Données fréquemment demandées
    • API majoritairement en lecture
    • Réduire les invocations Lambda

 

Mise en cache d'API

Développer des applications sur AWS

Mise en cache d'API

 

Réponse API mise en cache

  • Les réponses mises en cache expirent après un TTL configurable.
  • Gérez les données périmées en :
    • Configurant l'expiration du cache
    • Vidant le cache
Développer des applications sur AWS

Bonnes pratiques : nommez clairement les ressources

 

Conception d'API - noms

  • Les chemins doivent représenter des ressources, pas des actions.
  • Utilisez des noms, pas des verbes.
  • Bon :
    • GET /orders/123
  • À éviter :
    • GET /getOrder/123
Développer des applications sur AWS

Bonnes pratiques : versionnez les API

 

Versionner les API

  • Versionnez les API pour les faire évoluer en sécurité.
  • Évitez de casser les clients existants.
  • Approches courantes :
    • Version dans l'URI : GET /v1/orders
    • Paramètre de requête : GET /orders?version=1
    • En-tête HTTP : Accept-Version: v1
Développer des applications sur AWS

Portails pour développeurs d'API

  • Publiez et partagez des REST APIs via un portail web.
  • Fournissez une documentation aux consommateurs d'API.
  • Principales fonctions :
    • Documentation d'API (fichiers Swagger)
    • Onboarding des consommateurs
    • Téléchargements d'SDK
    • Inscription de clés d'API et abonnements

 

portail api gateway

Développer des applications sur AWS

Spécifications OpenAPI

  • OpenAPI (Swagger) : standard pour décrire les REST APIs.
  • API Gateway peut importer et exporter des spécifications OpenAPI.

 

Prise en charge de Swagger dans API Gateway

Développer des applications sur AWS

Passons à la pratique !

Développer des applications sur AWS

Preparing Video For Download...