Tworzenie API

Tworzenie aplikacji na AWS

Ricardo Sueiras

Principal Technologist

Integracje API Gateway

 

Integracje API Gateway

  • Wiele opcji integracji z back-endem
  • HTTP: dowolny publicznie dostępny endpoint
  • Usługi AWS, np. DynamoDB lub SNS
  • Funkcje Lambda
  • Prywatne zasoby przez łącza VPC
  • Odpowiedzi mock bez prawdziwego back-endu
Tworzenie aplikacji na AWS

Typy integracji: proxy

 

Typy integracji API

  • Typ integracji określa, ile kontroli ma API Gateway
  • Typy proxy: AWS_PROXY i HTTP_PROXY
  • Całe żądanie HTTP trafia bezpośrednio do back-endu
  • API Gateway działa jako przezroczyste przekaźnik
  • Back-end samodzielnie formułuje odpowiedź
Tworzenie aplikacji na AWS

Typy integracji: bez proxy

  • Typy bez proxy: AWS i HTTP
  • Samodzielnie konfigurujesz transformacje żądań i odpowiedzi
  • Działają na podstawie szablonów mapowania
  • Szablony pisane w Velocity Template Language (VTL)

 

Typy integracji API

Tworzenie aplikacji na AWS

Walidacja żądań

 

Walidacja żądań

  • Żądania są walidowane zanim dotrą do back-endu
  • Wykrywa brakujące wymagane pola
  • Wykrywa nieprawidłowy format JSON
  • Wykrywa błędne typy parametrów
  • Błędy zwracają zazwyczaj 400 Bad Request
Tworzenie aplikacji na AWS

Walidacja żądań

 

Walidacja żądań

  • Walidacja może obejmować:
    • Nagłówki
    • Parametry query string
    • Treść żądania
    • Schemat JSON
Tworzenie aplikacji na AWS

Walidacja żądań

 

Walidacja żądań

  • Walidacja przynosi korzyści:
    • Ogranicza nieprawidłowe żądania do back-endu
    • Zmniejsza koszty wykonania Lambda
    • Poprawia niezawodność API
Tworzenie aplikacji na AWS

Transformacje

  • Modyfikuj żądania i odpowiedzi bez zmian w kodzie back-endu
    • Zmień strukturę payloadu
    • Zmień nazwy pól
    • Przekształć nagłówki
    • Konwertuj formaty danych
    • Ukryj szczegóły implementacji
  • Obsługiwane przez szablony mapowania VTL

 

Transformacje API

Tworzenie aplikacji na AWS

Obsługa błędów

 

Błędy API

  • Dwie kategorie błędów
    • Błędy bramki: zgłaszane przez API Gateway
    • Błędy integracji: awarie back-endu
  • Typowe błędy bramki:
    • 400 Bad Request: żądanie nie przeszło walidacji
    • 429 Too Many Requests: przekroczony limit żądań
Tworzenie aplikacji na AWS

Obsługa błędów

 

Błędy API

  • Typowe błędy integracji:
    • 502 Bad Gateway: zniekształcona lub błędna odpowiedź
    • 503 Service Unavailable: back-end niedostępny lub przeciążony
    • 504 Gateway Timeout: przekroczony limit 29 sekund
    • Regionalne i prywatne REST API mogą mieć dłuższy limit
Tworzenie aplikacji na AWS

Logowanie

  • Logi wykonania i metryki CloudWatch to kluczowe narzędzia diagnostyczne
  • API Gateway integruje się z CloudWatch w zakresie:
    • Logów
    • Metryk
    • Śledzenia wykonania

 

 

Obserwowalność API

Tworzenie aplikacji na AWS

Logowanie

  • Logi CloudWatch pomagają diagnozować:
    • Błędy integracji
    • Błędy transformacji
    • Niepowodzenia autoryzacji
    • Problemy z wykonaniem Lambda

 

 

Obserwowalność API

Tworzenie aplikacji na AWS

Etapy: zarządzanie API w różnych środowiskach

 

Etapy

  • Jedna definicja API obsługuje wiele środowisk
  • Etapy to sposób, w jaki API Gateway zarządza tymi środowiskami
Tworzenie aplikacji na AWS

Etapy: zarządzanie API w różnych środowiskach

 

Etapy

  • Jedna definicja API obsługuje wiele środowisk
  • Etapy to sposób, w jaki API Gateway zarządza tymi środowiskami
  • Etap to nazwana referencja
  • Wskazuje na migawkę wdrożenia konfiguracji API
Tworzenie aplikacji na AWS

Etapy: zarządzanie API w różnych środowiskach

 

Etapy

  • Jedna definicja API obsługuje wiele środowisk
  • Etapy to sposób, w jaki API Gateway zarządza tymi środowiskami
  • Etap to nazwana referencja
  • Wskazuje na migawkę wdrożenia konfiguracji API
  • Typowe nazwy etapów:
    • Dev
    • Test
    • QA i Prod
Tworzenie aplikacji na AWS

Etapy: zarządzanie API w różnych środowiskach

 

Etapy

  • Jedna definicja API obsługuje wiele środowisk
  • Etapy to sposób, w jaki API Gateway zarządza tymi środowiskami
  • Etap to nazwana referencja
  • Wskazuje na migawkę wdrożenia konfiguracji API
  • Typowe nazwy etapów: Dev, Test, QA, Prod
  • Adres URL wywołania odzwierciedla każdy etap
Tworzenie aplikacji na AWS

Etapy: zarządzanie API w różnych środowiskach

 

Etapy

  • Jedna definicja API obsługuje wiele środowisk
  • Etapy to sposób, w jaki API Gateway zarządza tymi środowiskami
  • Etap to nazwana referencja
  • Wskazuje na migawkę wdrożenia konfiguracji API
  • Typowe nazwy etapów: Dev, Test, QA, Prod
  • Adres URL wywołania odzwierciedla każdy etap
  • Wiele etapów może wskazywać na jedno wdrożenie — umożliwia natychmiastowy rollback
Tworzenie aplikacji na AWS

Etapy: zarządzanie API w różnych środowiskach

 

Etapy

  • Zmiany wchodzą w życie dopiero po wdrożeniu na etap
Tworzenie aplikacji na AWS

Możliwości etapów

  • Każdy etap jest konfigurowany niezależnie
  • Konfiguracja obejmuje zmienne etapu
  • Zmienne etapu to pary klucz–wartość
  • Kierują jedno wdrożenie do różnych back-endów
  • Zmiana środowiska nie wymaga ponownego wdrożenia

 

Etap

Tworzenie aplikacji na AWS

Możliwości etapów

  • Wdrożenia canary
    • Tylko dla REST API
    • Kierują część ruchu do nowego wdrożenia
    • Można promować do pełnego wydania
    • Usunięcie canary cofa zmiany

 

Etap

Tworzenie aplikacji na AWS

Możliwości etapów

  • Throttling
    • Ustawiany na poziomie etapu
    • Dotyczy wszystkich metod, z możliwością nadpisania dla poszczególnych

 

Etap

Tworzenie aplikacji na AWS

Możliwości etapów

  • Throttling
    • Ustawiany na poziomie etapu
    • Dotyczy wszystkich metod, z możliwością nadpisania dla poszczególnych
  • Buforowanie
    • Tylko dla REST API
    • Przechowuje odpowiedzi back-endu na poziomie etapu
    • Klienci mogą pominąć bufor nagłówkiem Cache-Control
    • TTL od 0 do 3600 sekund, domyślnie 300

 

Etap

Tworzenie aplikacji na AWS

Możliwości etapów

  • Logowanie oferuje dwa tryby
    • Logi dostępu
    • Tworzone ze zmiennych $context, wysyłane do grupy logów CloudWatch
    • Logi wykonania
    • Rejestrują pełne szczegóły żądania i odpowiedzi

 

Etap

Tworzenie aplikacji na AWS

Czas na praktykę!

Tworzenie aplikacji na AWS

Preparing Video For Download...