AWS'de API tasarlama

AWS üzerinde Uygulama Geliştirme

Ricardo Sueiras

Principal Technologist

API Gateway

 

API'ler nedir

 

  • Amazon API Gateway: API oluşturmak için yönetilen bir hizmet.
  • API'lerini tasarla, dağıt, yönet ve güvene al.
AWS üzerinde Uygulama Geliştirme

Amazon API Gateway yetenekleri

 

API yetenekleri

  • Farklı API türlerini uygula.
AWS üzerinde Uygulama Geliştirme

Amazon API Gateway yetenekleri

 

API Yetenekleri

  • Farklı API türlerini uygula.
  • Arka uç hizmetlerle tümleştir.
AWS üzerinde Uygulama Geliştirme

Amazon API Gateway yetenekleri

 

API Gateway yetenekleri

  • Farklı API türlerini uygula.
  • Arka uç hizmetlerle tümleştir.
  • API erişimini güvene al.
AWS üzerinde Uygulama Geliştirme

Amazon API Gateway yetenekleri

 

API Gateway yetenekleri

  • Farklı API türlerini uygula.
  • Arka uç hizmetlerle tümleştir.
  • API erişimini güvene al.
  • Arka uçları korumak için istekleri sınırla.
AWS üzerinde Uygulama Geliştirme

Amazon API Gateway yetenekleri

 

API Gateway yetenekleri

  • Farklı API türlerini uygula.
  • Arka uç hizmetlerle tümleştir.
  • API erişimini güvene al.
  • Arka uçları korumak için istekleri sınırla.
  • İstek ve yanıt yüklerini dönüştür.
AWS üzerinde Uygulama Geliştirme

Amazon API Gateway yetenekleri

 

API Gateway yetenekleri

  • Farklı API türlerini uygula.
  • Arka uç hizmetlerle tümleştir.
  • API erişimini güvene al.
  • Arka uçları korumak için istekleri sınırla.
  • İstek ve yanıt yüklerini dönüştür.
  • API'leri tüketiciler için yayımla.
AWS üzerinde Uygulama Geliştirme

Amazon API Gateway yetenekleri

 

API Gateway yetenekleri

  • Farklı API türlerini uygula.
  • Arka uç hizmetlerle tümleştir.
  • API erişimini güvene al.
  • Arka uçları korumak için istekleri sınırla.
  • İstek ve yanıt yüklerini dönüştür.
  • API'leri tüketiciler için yayımla.
  • API yaşam döngüsünü yönet: versiyonlama, dağıtım, takma adlar.
AWS üzerinde Uygulama Geliştirme

API türleri

  • API Gateway üç API türünü destekler:
    • REST API'ler
    • HTTP API'ler
    • WebSocket API'ler

 

API Türleri

AWS üzerinde Uygulama Geliştirme

API Gateway uç noktaları

  • Uç noktalar, istemcilerin API'ne nasıl ulaştığını belirler.
  • Edge-optimized: küresel düşük gecikme için AWS yönetimli CloudFront.
  • Regional: belirli bir AWS Bölgesine dağıtılır.
  • Private: yalnızca AWS PrivateLink ile erişilir.
  • Özel uç noktalar genel internete çıkmaz.

 

Uç noktalar

AWS üzerinde Uygulama Geliştirme

REST API'ler

  • En zengin özellikli API Gateway seçeneği.
  • Eşzamanlı istek/yanıt modeline dayanır.

 

REST API'ler

AWS üzerinde Uygulama Geliştirme

REST API kullanım durumları

 

API REST kullanım örnekleri

  • Tam yaşam döngüsü yönetimi isteyen kurumsal API'ler.
  • Gelişmiş güvenlik kontrolleri gerektiren API'ler.
  • API anahtarı ve kullanım planlı üçüncü taraf geliştirici ekosistemleri.
  • Lambda olmadan doğrudan AWS hizmet tümleşmeleri.
AWS üzerinde Uygulama Geliştirme

API Gateway REST API desteği

 

REST API desteği

  • İstek doğrulama.
  • API anahtarları.
  • Kullanım planları ve hız sınırlama.
  • Yapılandırılabilir TTL ile yanıt önbellekleme.
  • VTL şablonlarıyla istek/yanıt dönüştürme.
  • IAM kimlik doğrulama (Signature V4).
  • Lambda yetkilendiriciler, Cognito kullanıcı havuzları.
AWS üzerinde Uygulama Geliştirme

API Gateway REST API desteği

 

 

REST API desteği

  • Üç uç nokta türü desteklenir:
    • Edge-optimized
    • Regional
    • Private
  • AWS WAF ile web istismarı koruması.
  • Canary sürüm dağıtımları.
  • AWS X-Ray ve CloudWatch günlüğü ile gözlemlenebilirlik.
AWS üzerinde Uygulama Geliştirme

REST API'lerin ödünleri

  • HTTP API'lere göre daha maliyetli.
  • Biraz daha yüksek gecikme.

 

REST ödünleri

AWS üzerinde Uygulama Geliştirme

HTTP API'ler

  • Özellik genişliği yerine performans ve maliyet için optimize:
    • Performans
    • Maliyet

 

HTTP API'ler

AWS üzerinde Uygulama Geliştirme

HTTP API kullanım durumları

  • Sunucusuz iş yükleri ve Lambda destekli API'ler.
  • Mikro hizmetler ve hafif proxy API'ler.
  • Gecikmeye duyarlı uygulamalar.
  • OAuth 2.0 / OIDC kimlik doğrulamalı API'ler.

 

HTTP API kullanım örnekleri

AWS üzerinde Uygulama Geliştirme

API Gateway HTTP API desteği

 

HTTP API özellikleri

  • Lambda proxy tümleşmeleri ve yetkilendiriciler.
  • Yerel JWT/OIDC yetkilendirme (Cognito, Auth0, Okta).
  • API düzeyinde yerleşik CORS yapılandırması.
  • VPC Link ile özel VPC tümleşmeleri.
  • Başlıklar, sorgu dizeleri ve yollar için temel parametre eşleme.
AWS üzerinde Uygulama Geliştirme

HTTP API ödünleri

 

HTTP API sınırlamaları

  • HTTP API'ler şunları DESTEKLEMEZ:

    • API anahtarları
    • Kullanım planları
    • İstek doğrulama
    • Yanıt önbellekleme
    • AWS X-Ray ile izleme
    • VTL yük dönüştürme

    • Yalnızca şunları destekler:

      • Edge veya özel uç noktalar (yalnızca bölgesel)
AWS üzerinde Uygulama Geliştirme

WebSocket API'ler

 

WebSocket API'ler

  • İstemciler ve sunucular arasında çift yönlü iletişim.
  • REST ve HTTP API'lerin aksine bağlantı açık kalır.
  • Sunucular bağlı istemcilere veri itebilir.
AWS üzerinde Uygulama Geliştirme

WebSocket API kullanım durumları

  • Sohbet uygulamaları.
  • Gerçek zamanlı bildirimler.
  • Gerçek zamanlı panolar.

 

kullanım durumları

AWS üzerinde Uygulama Geliştirme

API Gateway WebSocket API desteği

  • Yük verisi dönüştürmeleri.
  • İstek doğrulama.
  • Özel yerleşik yollar:
    • $connect: istemci bağlantı kurar
    • $disconnect: istemci bağlantıyı keser
    • $default: eşleşen yol bulunamadı

 

WebSocket API özellikleri

AWS üzerinde Uygulama Geliştirme

API önbellekleme

  • Yanıtları önbelleğe almak arka uç yükünü azaltır.
  • API performansını artırır.
  • Tipik kullanım durumları:
    • Sık istenen veriler
    • Okuma ağırlıklı API'ler
    • Lambda çağrılarını azaltma

 

API önbellekleme

AWS üzerinde Uygulama Geliştirme

API önbellekleme

 

API önbelleklenmiş yanıt

  • Önbelleklenmiş yanıtlar yapılandırılabilir TTL sonrası dolar.
  • Eskimiş veriyi yönetme:
    • Önbelleğin süresini bitir
    • Önbelleği temizle
AWS üzerinde Uygulama Geliştirme

API tasarımında en iyi uygulamalar: net kaynak adları kullan

 

API tasarımı - isimler

  • Yollar eylemleri değil, kaynakları temsil etmelidir.
  • Fiil değil, isim kullan.
  • İyi:
    • GET /orders/123
  • Kaçın:
    • GET /getOrder/123
AWS üzerinde Uygulama Geliştirme

API tasarımında en iyi uygulamalar: API'leri versiyonla

 

API'lerin versiyonlanması

  • API'leri zamanla güvenle evriltmek için versiyonla.
  • Mevcut istemcileri bozma.
  • Yaygın yaklaşımlar:
    • URI versiyonlama: GET /v1/orders
    • Sorgu parametresi: GET /orders?version=1
    • HTTP başlığı: Accept-Version: v1
AWS üzerinde Uygulama Geliştirme

API geliştirici portalları

  • REST API'leri bir web portalı üzerinden yayımla ve paylaş.
  • API tüketicilerine dokümantasyon sağla.
  • Temel özellikler:
    • API dokümantasyonu (Swagger dosyaları)
    • Tüketici onboarding'i
    • SDK indirmeleri
    • API anahtarı kaydı ve abonelik akışları

 

api gateway portalı

AWS üzerinde Uygulama Geliştirme

OpenAPI belirtimleri

  • OpenAPI (Swagger): REST API'leri tanımlamanın standart yolu.
  • API Gateway, OpenAPI şemalarını içe/dışa aktarabilir.

 

API Gateway'de Swagger desteği

AWS üzerinde Uygulama Geliştirme

Hadi pratik yapalım!

AWS üzerinde Uygulama Geliştirme

Preparing Video For Download...