Construirea de API-uri cu Amazon API Gateway

Implementarea aplicațiilor pe AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Trei clienți, un singur backend

  • Web, mobil și parteneri apelează același backend
  • Fiecare folosește un format ușor diferit
  • O poartă principală validează și transformă fiecare cerere

 

Trei tipuri de clienți care se conectează printr-un singur API Gateway care direcționează cererile către serviciile backend

Implementarea aplicațiilor pe AWS

Ce face API Gateway

API Gateway ca poartă principală gestionată: clienți web și mobil direcționați printr-un gateway central cu funcții de rutare, autentificare, limitare și transformare către Lambda, endpoint-uri HTTP și servicii AWS

  • O poartă principală complet gestionată pentru API-urile tale
  • Gestionează rutarea, autentificarea, limitarea și transformarea
  • Se află între clienți și backend
  • Backend-uri: Lambda, endpoint-uri HTTP sau servicii AWS
Implementarea aplicațiilor pe AWS

Tipuri de integrare

  • Lambda proxy: transmite întreaga cerere către Lambda
  • Lambda non-proxy: mapezi manual câmpurile cererii și răspunsului
  • HTTP: redirecționează către un backend HTTP
  • MOCK: returnează un răspuns fără niciun backend

Patru tipuri de integrare API Gateway: Lambda proxy transmite cererea completă, Lambda non-proxy folosește șabloane de mapare, HTTP redirecționează către un endpoint, MOCK returnează un răspuns static

Implementarea aplicațiilor pe AWS

Transformări de cereri și răspunsuri

  • Șabloanele de mapare reformatează payload-urile cu VTL
  • Velocity Template Language transformă corpul, headerele și parametrii
  • Mapare cerere: din formatul clientului în formatul backend-ului
  • Mapare răspuns: din formatul backend-ului în formatul clientului

Flux șablon de mapare VTL: payload-ul clientului transformat de șablonul de cerere înainte de a ajunge la backend, apoi răspunsul backend-ului transformat de șablonul de răspuns înainte de a fi returnat clientului

Implementarea aplicațiilor pe AWS

Validarea cererilor

Moduri de validare a cererii: validare corp față de schema JSON, validare parametri de interogare și headere obligatorii, sau validare combinată înainte ca backend-ul Lambda să fie invocat

  • Respinge datele invalide înainte ca acestea să ajungă la backend
  • Parametri obligatorii: headere, query string-uri, căi
  • Scheme de model: validează structura corpului JSON
  • Validează corpul, parametrii sau ambele
Implementarea aplicațiilor pe AWS

Coduri de stare și contracte de eroare

  • Suprascrie codurile de stare ale backend-ului pentru un contract consistent
  • Mapează un 502 din backend la un 503 curat pentru clienți
  • Răspunsuri gateway: personalizează corpurile erorilor
  • Clienții primesc erori previzibile indiferent de backend

Ciclul complet al cererii prin API Gateway: validarea respinge datele invalide la intrare, șablonul de mapare reformatează datele valide pentru backend, șablonul de răspuns formatează rezultatul într-un contract consistent pentru client

Implementarea aplicațiilor pe AWS

Tabloul complet

  • Cerere client → validare → transformare → backend
  • Datele invalide sunt respinse la intrare
  • Datele valide sunt reformatate pentru backend
  • Răspunsul backend-ului este reformatat în contractul clientului

Ciclul complet al cererii prin API Gateway: validarea respinge datele invalide la intrare, șablonul de mapare reformatează datele valide pentru backend, șablonul de răspuns formatează rezultatul într-un contract consistent pentru client

Implementarea aplicațiilor pe AWS

Hai să exersăm!

Implementarea aplicațiilor pe AWS

Preparing Video For Download...