Tworzenie API za pomocą Amazon API Gateway

Wdrażanie aplikacji na AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Trzech klientów, jeden backend

  • Web, mobile i partner wywołują jeden backend
  • Każdy używa nieco innego formatu
  • Wspólna brama weryfikuje i przekształca każde żądanie

 

Trzy typy klientów łączących się przez jedno API Gateway, które kieruje żądania do usług backendowych

Wdrażanie aplikacji na AWS

Co robi API Gateway

API Gateway jako zarządzana brama: klienci web i mobile kierują żądania przez centralną bramę z funkcjami routingu, autoryzacji, ograniczania ruchu i transformacji do Lambda, endpointów HTTP i usług AWS

  • W pełni zarządzana brama dla twoich API
  • Obsługuje routing, autoryzację, ograniczanie ruchu i transformację
  • Działa między klientami a twoim backendem
  • Backend: Lambda, endpointy HTTP lub usługi AWS
Wdrażanie aplikacji na AWS

Typy integracji

  • Lambda proxy: przekazuje całe żądanie do Lambda
  • Lambda non-proxy: samodzielnie mapujesz pola żądania i odpowiedzi
  • HTTP: przekazuje żądanie do backendu HTTP
  • MOCK: zwraca odpowiedź bez żadnego backendu

Cztery typy integracji API Gateway: Lambda proxy przekazujące pełne żądanie, Lambda non-proxy z szablonami mapowania, HTTP przekazujące do endpointu oraz MOCK zwracające statyczną odpowiedź

Wdrażanie aplikacji na AWS

Transformacje żądań i odpowiedzi

  • Szablony mapowania przekształcają payloady za pomocą VTL
  • Velocity Template Language przekształca treść, nagłówki i parametry
  • Mapowanie żądania: format klienta → format backendu
  • Mapowanie odpowiedzi: format backendu → format klienta

Przepływ szablonu mapowania VTL: payload klienta przekształcany przez szablon żądania przed dotarciem do backendu, a odpowiedź backendu przekształcana przez szablon odpowiedzi przed zwróceniem do klienta

Wdrażanie aplikacji na AWS

Walidacja żądań

Tryby walidacji żądań: walidacja treści względem schematu JSON, walidacja wymaganych parametrów zapytania i nagłówków lub obu naraz — przed wywołaniem backendu Lambda

  • Odrzucaj nieprawidłowe dane zanim dotrą do backendu
  • Wymagane parametry: nagłówki, query stringi, ścieżki
  • Schematy modeli: walidują strukturę ciała JSON
  • Waliduj treść, parametry lub oba naraz
Wdrażanie aplikacji na AWS

Kody statusu i kontrakty błędów

  • Nadpisuj kody statusu backendu dla spójnego kontraktu
  • Zamień kod 502 z backendu na czytelny 503 dla klientów
  • Odpowiedzi bramy: dostosuj treść błędów
  • Klienci zawsze otrzymują przewidywalne błędy, niezależnie od backendu

Pełny cykl życia żądania w API Gateway: walidacja odrzuca nieprawidłowe dane na wejściu, szablon mapowania przekształca poprawne dane dla backendu, szablon odpowiedzi formatuje wynik w spójny kontrakt dla klienta

Wdrażanie aplikacji na AWS

Składamy to w całość

  • Żądanie klienta → walidacja → transformacja → backend
  • Nieprawidłowe dane odrzucane na wejściu
  • Poprawne dane przekształcane dla backendu
  • Odpowiedź backendu formatowana zgodnie z kontraktem klienta

Pełny cykl życia żądania w API Gateway: walidacja odrzuca nieprawidłowe dane na wejściu, szablon mapowania przekształca poprawne dane dla backendu, szablon odpowiedzi formatuje wynik w spójny kontrakt dla klienta

Wdrażanie aplikacji na AWS

Czas na praktykę!

Wdrażanie aplikacji na AWS

Preparing Video For Download...