Projektowanie API na AWS

Tworzenie aplikacji na AWS

Ricardo Sueiras

Principal Technologist

API Gateway

 

Czym są API

 

  • Amazon API Gateway: zarządzana usługa do budowania API.
  • Projektuj, wdrażaj, zarządzaj i zabezpieczaj swoje API.
Tworzenie aplikacji na AWS

Możliwości Amazon API Gateway

 

Możliwości API

  • Obsługa różnych typów API.
Tworzenie aplikacji na AWS

Możliwości Amazon API Gateway

 

Możliwości API

  • Obsługa różnych typów API.
  • Integracja z usługami backendowymi.
Tworzenie aplikacji na AWS

Możliwości Amazon API Gateway

 

Możliwości API Gateway

  • Obsługa różnych typów API.
  • Integracja z usługami backendowymi.
  • Zabezpieczanie dostępu do API.
Tworzenie aplikacji na AWS

Możliwości Amazon API Gateway

 

Możliwości API Gateway

  • Obsługa różnych typów API.
  • Integracja z usługami backendowymi.
  • Zabezpieczanie dostępu do API.
  • Ograniczanie liczby żądań w celu ochrony backendu.
Tworzenie aplikacji na AWS

Możliwości Amazon API Gateway

 

Możliwości API Gateway

  • Obsługa różnych typów API.
  • Integracja z usługami backendowymi.
  • Zabezpieczanie dostępu do API.
  • Ograniczanie liczby żądań w celu ochrony backendu.
  • Przekształcanie ładunków żądań i odpowiedzi.
Tworzenie aplikacji na AWS

Możliwości Amazon API Gateway

 

Możliwości API Gateway

  • Obsługa różnych typów API.
  • Integracja z usługami backendowymi.
  • Zabezpieczanie dostępu do API.
  • Ograniczanie liczby żądań w celu ochrony backendu.
  • Przekształcanie ładunków żądań i odpowiedzi.
  • Publikowanie API dla odbiorców.
Tworzenie aplikacji na AWS

Możliwości Amazon API Gateway

 

Możliwości API Gateway

  • Obsługa różnych typów API.
  • Integracja z usługami backendowymi.
  • Zabezpieczanie dostępu do API.
  • Ograniczanie liczby żądań w celu ochrony backendu.
  • Przekształcanie ładunków żądań i odpowiedzi.
  • Publikowanie API dla odbiorców.
  • Zarządzanie cyklem życia API: wersjonowanie, wdrożenia, aliasy.
Tworzenie aplikacji na AWS

Typy API

  • API Gateway obsługuje trzy typy API:
    • REST API
    • HTTP API
    • WebSocket API

 

Typy API

Tworzenie aplikacji na AWS

Punkty końcowe API Gateway

  • Punkty końcowe określają, jak klienci łączą się z API.
  • Edge-optimized: CloudFront zarządzany przez AWS — niskie opóźnienia globalnie.
  • Regional: wdrożony w konkretnym regionie AWS.
  • Private: dostępny wyłącznie przez AWS PrivateLink.
  • Prywatne punkty końcowe działają poza publicznym internetem.

 

Punkty końcowe

Tworzenie aplikacji na AWS

REST API

  • Najbogatsze w funkcje rozwiązanie API Gateway.
  • Opiera się na synchronicznym modelu żądanie/odpowiedź.

 

REST API

Tworzenie aplikacji na AWS

Zastosowania REST API

 

Zastosowania REST API

  • Korporacyjne API wymagające pełnego zarządzania cyklem życia.
  • API z zaawansowanymi mechanizmami zabezpieczeń.
  • Ekosystemy dla zewnętrznych deweloperów z kluczami API i planami użycia.
  • Bezpośrednia integracja z usługami AWS bez Lambda.
Tworzenie aplikacji na AWS

Wsparcie REST API w API Gateway

 

Wsparcie REST API

  • Walidacja żądań.
  • Klucze API.
  • Plany użycia i ograniczanie liczby żądań.
  • Buforowanie odpowiedzi z konfigurowalnym TTL.
  • Transformacja żądań i odpowiedzi za pomocą szablonów VTL.
  • Uwierzytelnianie IAM (Signature V4).
  • Autoryzatory Lambda, pule użytkowników Cognito.
Tworzenie aplikacji na AWS

Wsparcie REST API w API Gateway

 

 

Wsparcie REST API

  • Trzy obsługiwane typy punktów końcowych:
    • Edge-optimized
    • Regional
    • Private
  • Ochrona przed exploitami webowymi za pomocą AWS WAF.
  • Wdrożenia kanarkowe (canary release).
  • Obserwowalność przez AWS X-Ray i logowanie w CloudWatch.
Tworzenie aplikacji na AWS

Kompromisy REST API

  • Wyższy koszt niż HTTP API.
  • Nieco większe opóźnienia.

 

Kompromisy REST API

Tworzenie aplikacji na AWS

HTTP API

  • Zoptymalizowane pod kątem wydajności i kosztów, kosztem zakresu funkcji:
    • Wydajność
    • Koszt

 

HTTP API

Tworzenie aplikacji na AWS

Zastosowania HTTP API

  • Obciążenia bezserwerowe i API obsługiwane przez Lambda.
  • Mikroserwisy i lekkie proxy API.
  • Aplikacje wrażliwe na opóźnienia.
  • API korzystające z uwierzytelniania OAuth 2.0 / OIDC.

 

Zastosowania HTTP API

Tworzenie aplikacji na AWS

Wsparcie HTTP API w API Gateway

 

Funkcje HTTP API

  • Integracje proxy Lambda i autoryzatory.
  • Natywna autoryzacja JWT/OIDC (Cognito, Auth0, Okta).
  • Wbudowana konfiguracja CORS na poziomie API.
  • Prywatne integracje VPC przez VPC Link.
  • Podstawowe mapowanie parametrów nagłówków, ciągów zapytań i ścieżek.
Tworzenie aplikacji na AWS

Kompromisy HTTP API

 

Ograniczenia HTTP API

  • HTTP API NIE obsługują:

    • Kluczy API
    • Planów użycia
    • Walidacji żądań
    • Buforowania odpowiedzi
    • Śledzenia z AWS X-Ray
    • Transformacji ładunków VTL

    • Obsługują tylko:

      • Punkty końcowe edge lub prywatne (tylko regionalne)
Tworzenie aplikacji na AWS

WebSocket API

 

WebSocket API

  • Dwukierunkowa komunikacja między klientami a serwerami.
  • Połączenie pozostaje otwarte — inaczej niż w REST i HTTP API.
  • Serwery mogą przesyłać dane do połączonych klientów.
Tworzenie aplikacji na AWS

Zastosowania WebSocket API

  • Aplikacje czatu.
  • Powiadomienia w czasie rzeczywistym.
  • Pulpity nawigacyjne w czasie rzeczywistym.

 

Zastosowania

Tworzenie aplikacji na AWS

Wsparcie WebSocket API w API Gateway

  • Transformacje danych ładunków.
  • Walidacja żądań.
  • Specjalne wbudowane trasy:
    • $connect: klient nawiązuje połączenie
    • $disconnect: klient rozłącza się
    • $default: brak pasującej trasy

 

Funkcje WebSocket API

Tworzenie aplikacji na AWS

Buforowanie API

  • Buforowanie odpowiedzi zmniejsza obciążenie backendu.
  • Poprawia wydajność API.
  • Typowe zastosowania:
    • Często żądane dane
    • API z dużą liczbą odczytów
    • Ograniczanie liczby wywołań Lambda

 

Buforowanie API

Tworzenie aplikacji na AWS

Buforowanie API

 

Buforowane odpowiedzi API

  • Buforowane odpowiedzi wygasają po konfigurowalnym czasie TTL.
  • Zarządzanie nieaktualnymi danymi przez:
    • Ustawienie czasu wygaśnięcia bufora
    • Wyczyszczenie bufora
Tworzenie aplikacji na AWS

Dobre praktyki projektowania API: czytelne nazwy zasobów

 

Projektowanie API — rzeczowniki

  • Ścieżki powinny reprezentować zasoby, nie akcje.
  • Używaj rzeczowników, nie czasowników.
  • Dobrze:
    • GET /orders/123
  • Unikaj:
    • GET /getOrder/123
Tworzenie aplikacji na AWS

Dobre praktyki projektowania API: wersjonowanie

 

Wersjonowanie API

  • Wersjonuj API, by bezpiecznie je rozwijać w czasie.
  • Unikaj łamania istniejących klientów.
  • Popularne podejścia:
    • Wersjonowanie w URI: GET /v1/orders
    • Parametr zapytania: GET /orders?version=1
    • Nagłówek HTTP: Accept-Version: v1
Tworzenie aplikacji na AWS

Portale dla deweloperów API

  • Publikuj i udostępniaj REST API przez portal webowy.
  • Dostarczaj dokumentację odbiorcom API.
  • Kluczowe funkcje:
    • Dokumentacja API (pliki Swagger)
    • Wdrożenie odbiorców
    • Pobieranie SDK
    • Rejestracja kluczy API i przepływy subskrypcji

 

Portal API Gateway

Tworzenie aplikacji na AWS

Specyfikacje OpenAPI

  • OpenAPI (Swagger): standardowy sposób opisywania REST API.
  • API Gateway może importować i eksportować specyfikacje OpenAPI.

 

Obsługa Swagger w API Gateway

Tworzenie aplikacji na AWS

Czas na praktykę!

Tworzenie aplikacji na AWS

Preparing Video For Download...