Créer des API avec Amazon API Gateway

Déployer des applications sur AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Trois clients, un backend

  • Web, mobile et un partenaire appellent le même backend
  • Chacun parle un format un peu différent
  • Une porte d'entrée valide et transforme chaque appel

 

Trois types de clients se connectent via un seul API Gateway qui achemine vers des services backend

Déployer des applications sur AWS

Ce que fait API Gateway

API Gateway comme porte d'entrée gérée : clients web et mobiles passent par une passerelle centrale offrant routage, auth, limitation et transformation vers Lambda, points de terminaison HTTP et services AWS

  • Une porte d'entrée entièrement gérée pour vos API
  • Gère le routage, l'auth, la limitation et la transformation
  • Entre vos clients et votre backend
  • Backends : Lambda, points de terminaison HTTP ou services AWS
Déployer des applications sur AWS

Types d'intégration

  • Lambda proxy : transmet toute la requête à Lambda
  • Lambda non-proxy : vous faites la correspondance des champs requête/réponse
  • HTTP : achemine vers un backend HTTP
  • MOCK : renvoie une réponse sans backend

Quatre types d'intégration API Gateway : Lambda proxy transmet tout, Lambda non-proxy avec modèles de mappage, HTTP vers un point de terminaison, et MOCK renvoyant une réponse statique

Déployer des applications sur AWS

Transformations requêtes et réponses

  • Les modèles de mappage remodèlent les charges utiles avec VTL
  • Velocity Template Language transforme corps, en-têtes, paramètres
  • Mappage de requête : format client vers format backend
  • Mappage de réponse : format backend vers format client

Flux de modèle VTL : la charge client est transformée par le modèle de requête avant le backend, puis la réponse backend par le modèle de réponse avant de revenir au client

Déployer des applications sur AWS

Validation des requêtes

Modes de validation de requête : valider le corps selon un schéma JSON, valider les paramètres requis de requête et d'en-tête, ou les deux avant d'invoquer le backend Lambda

  • Rejeter les mauvaises entrées avant qu'elles n'atteignent le backend
  • Paramètres requis : en-têtes, chaînes de requête, chemins
  • Schémas de modèle : valider la structure du corps JSON
  • Valider le corps, les paramètres ou les deux
Déployer des applications sur AWS

Codes d'état et contrats d'erreur

  • Remplacer les codes d'état backend pour un contrat uniforme
  • Mapper un 502 backend vers un 503 clair pour les clients
  • Réponses de la passerelle : personnaliser les corps d'erreur
  • Des erreurs prévisibles, peu importe le backend

Cycle complet d'une requête API Gateway : la validation rejette les mauvaises entrées, le modèle de mappage remodèle l'entrée valide pour le backend, le modèle de réponse formate la sortie pour un contrat client uniforme

Déployer des applications sur AWS

Rassembler le tout

  • Requête client → validation → transformation → backend
  • Mauvaise entrée rejetée à l'entrée
  • Bonne entrée remodélée pour le backend
  • Réponse backend remodelée selon le contrat client

Cycle complet d'une requête API Gateway : la validation rejette les mauvaises entrées, le modèle de mappage remodèle l'entrée valide pour le backend, le modèle de réponse formate la sortie pour un contrat client uniforme

Déployer des applications sur AWS

Passons à la pratique !

Déployer des applications sur AWS

Preparing Video For Download...