Návrh API na AWS

Developing Applications on AWS

Ricardo Sueiras

Principal Technologist

API Gateway

 

Co jsou API

 

  • Amazon API Gateway: spravovaná služba pro tvorbu API.
  • Navrhuj, nasazuj, spravuj a zabezpečuj svá API.
Developing Applications on AWS

Možnosti Amazon API Gateway

 

Možnosti API

  • Implementace různých typů API.
Developing Applications on AWS

Možnosti Amazon API Gateway

 

Možnosti API

  • Implementace různých typů API.
  • Integrace s backendovými službami.
Developing Applications on AWS

Možnosti Amazon API Gateway

 

Možnosti API Gateway

  • Implementace různých typů API.
  • Integrace s backendovými službami.
  • Zabezpečení přístupu k API.
Developing Applications on AWS

Možnosti Amazon API Gateway

 

Možnosti API Gateway

  • Implementace různých typů API.
  • Integrace s backendovými službami.
  • Zabezpečení přístupu k API.
  • Omezování požadavků pro ochranu backendů.
Developing Applications on AWS

Možnosti Amazon API Gateway

 

Možnosti API Gateway

  • Implementace různých typů API.
  • Integrace s backendovými službami.
  • Zabezpečení přístupu k API.
  • Omezování požadavků pro ochranu backendů.
  • Transformace požadavků a odpovědí.
Developing Applications on AWS

Možnosti Amazon API Gateway

 

Možnosti API Gateway

  • Implementace různých typů API.
  • Integrace s backendovými službami.
  • Zabezpečení přístupu k API.
  • Omezování požadavků pro ochranu backendů.
  • Transformace požadavků a odpovědí.
  • Publikování API pro spotřebitele.
Developing Applications on AWS

Možnosti Amazon API Gateway

 

Možnosti API Gateway

  • Implementace různých typů API.
  • Integrace s backendovými službami.
  • Zabezpečení přístupu k API.
  • Omezování požadavků pro ochranu backendů.
  • Transformace požadavků a odpovědí.
  • Publikování API pro spotřebitele.
  • Správa životního cyklu API: verzování, nasazení, aliasy.
Developing Applications on AWS

Typy API

  • API Gateway podporuje tři typy API:
    • REST API
    • HTTP API
    • WebSocket API

 

Typy API

Developing Applications on AWS

Endpointy API Gateway

  • Endpointy určují, jak klienti přistupují k API.
  • Edge-optimized: AWS spravovaný CloudFront pro nízkou latenci globálně.
  • Regional: nasazeno do konkrétního regionu AWS.
  • Private: dostupné pouze přes AWS PrivateLink.
  • Privátní endpointy nejsou dostupné přes veřejný internet.

 

Endpointy

Developing Applications on AWS

REST API

  • Nejbohatší nabídka funkcí API Gateway.
  • Postaveno na synchronním modelu požadavek/odpověď.

 

REST API

Developing Applications on AWS

Případy užití REST API

 

Případy užití REST API

  • Podniková API vyžadující správu celého životního cyklu.
  • API s pokročilými bezpečnostními kontrolami.
  • Ekosystémy vývojářů třetích stran s API klíči a plány využití.
  • Přímé integrace se službami AWS bez Lambda.
Developing Applications on AWS

Podpora REST API v API Gateway

 

Podpora REST API

  • Validace požadavků.
  • API klíče.
  • Plány využití a omezování požadavků.
  • Cachování odpovědí s konfigurovatelným TTL.
  • Transformace požadavků/odpovědí pomocí VTL šablon.
  • IAM autentizace (Signature V4).
  • Lambda autorizátory, Cognito user pools.
Developing Applications on AWS

Podpora REST API v API Gateway

 

 

Podpora REST API

  • Tři podporované typy endpointů:
    • Edge-optimized
    • Regional
    • Private
  • Ochrana před webovými hrozbami pomocí AWS WAF.
  • Nasazení s canary release.
  • Přehled provozu přes AWS X-Ray a CloudWatch logging.
Developing Applications on AWS

Kompromisy REST API

  • Dražší než HTTP API.
  • Mírně vyšší latence.

 

Kompromisy REST API

Developing Applications on AWS

HTTP API

  • Optimalizováno pro výkon a cenu, nikoli šíři funkcí:
    • Výkon
    • Cena

 

HTTP API

Developing Applications on AWS

Případy užití HTTP API

  • Serverless workloady a API postavená na Lambda.
  • Mikroslužby a lehká proxy API.
  • Aplikace citlivé na latenci.
  • API s autentizací OAuth 2.0 / OIDC.

 

Případy užití HTTP API

Developing Applications on AWS

Podpora HTTP API v API Gateway

 

Funkce HTTP API

  • Lambda proxy integrace a autorizátory.
  • Nativní JWT/OIDC autorizace (Cognito, Auth0, Okta).
  • Vestavěná konfigurace CORS na úrovni API.
  • Privátní VPC integrace přes VPC Link.
  • Základní mapování parametrů pro hlavičky, query stringy a cesty.
Developing Applications on AWS

Kompromisy HTTP API

 

Omezení HTTP API

  • HTTP API NEPODPORUJÍ:

    • API klíče
    • Plány využití
    • Validaci požadavků
    • Cachování odpovědí
    • Trasování přes AWS X-Ray
    • VTL transformaci payloadu

    • Podporují pouze:

      • Edge nebo privátní endpointy (pouze regional)
Developing Applications on AWS

WebSocket API

 

WebSocket API

  • Obousměrná komunikace mezi klienty a servery.
  • Spojení zůstává otevřené, na rozdíl od REST a HTTP API.
  • Servery mohou odesílat data připojeným klientům.
Developing Applications on AWS

Případy užití WebSocket API

  • Chatové aplikace.
  • Notifikace v reálném čase.
  • Dashboardy v reálném čase.

 

případy užití

Developing Applications on AWS

Podpora WebSocket API v API Gateway

  • Transformace payloadu dat.
  • Validace požadavků.
  • Speciální vestavěné routy:
    • $connect: klient navazuje spojení
    • $disconnect: klient se odpojuje
    • $default: nebyla nalezena odpovídající routa

 

Funkce WebSocket API

Developing Applications on AWS

Cachování API

  • Cachování odpovědí snižuje zátěž backendu.
  • Zlepšuje výkon API.
  • Typické případy užití:
    • Často požadovaná data
    • API s převahou čtení
    • Snížení počtu volání Lambda

 

Cachování API

Developing Applications on AWS

Cachování API

 

Cachované odpovědi API

  • Cachované odpovědi expirují po konfigurovatelném TTL.
  • Správa zastaralých dat:
    • Nastavením expirace cache
    • Vyprázdněním cache
Developing Applications on AWS

Osvědčené postupy návrhu API: jasné pojmenování zdrojů

 

Návrh API – podstatná jména

  • Cesty by měly reprezentovat zdroje, ne akce.
  • Používej podstatná jména, ne slovesa.
  • Dobře:
    • GET /orders/123
  • Vyhni se:
    • GET /getOrder/123
Developing Applications on AWS

Osvědčené postupy návrhu API: verzování

 

Verzování API

  • Verzuj API, aby bylo možné je bezpečně vyvíjet.
  • Vyvaruj se narušení stávajících klientů.
  • Běžné přístupy:
    • Verzování v URI: GET /v1/orders
    • Query parametr: GET /orders?version=1
    • HTTP hlavička: Accept-Version: v1
Developing Applications on AWS

Vývojářské portály API

  • Publikuj a sdílej REST API prostřednictvím webového portálu.
  • Poskytuj dokumentaci spotřebitelům API.
  • Klíčové funkce:
    • Dokumentace API (Swagger soubory)
    • Onboarding spotřebitelů
    • Stahování SDK
    • Registrace API klíčů a procesy přihlášení k odběru

 

portál API Gateway

Developing Applications on AWS

OpenAPI specifikace

  • OpenAPI (Swagger): standardní způsob popisu REST API.
  • API Gateway umí importovat a exportovat OpenAPI specifikace.

 

Podpora Swagger v API Gateway

Developing Applications on AWS

Pojďme cvičit!

Developing Applications on AWS

Preparing Video For Download...