API geliştirme

AWS üzerinde Uygulama Geliştirme

Ricardo Sueiras

Principal Technologist

API Gateway tümleştirmeleri

 

API Gateway tümleştirmeleri

  • Birden çok arka uç tümleştirme seçeneği
  • HTTP: herkese açık yönlenebilir herhangi bir uç nokta
  • DynamoDB veya SNS gibi AWS hizmet API'leri
  • Lambda işlevleri
  • VPC bağlantılarıyla özel kaynaklar
  • Gerçek arka uç olmadan sahte yanıtlar
AWS üzerinde Uygulama Geliştirme

Tümleştirme türleri: vekil

 

API tümleştirme türleri

  • Tümleştirme türü, API Gateway'in denetim düzeyini belirler
  • Vekil türleri: AWS_PROXY ve HTTP_PROXY
  • Tüm HTTP isteği doğrudan arka uca gönderilir
  • API Gateway şeffaf bir geçiştir
  • Yanıtı arka uç oluşturur
AWS üzerinde Uygulama Geliştirme

Tümleştirme türleri: vekil olmayan

  • Vekil olmayan türler: AWS ve HTTP
  • İstek ve yanıt dönüşümlerini sen yapılandırırsın
  • Eşleme şablonlarıyla yönetilir
  • Şablonlar Velocity Template Language (VTL) ile yazılır

 

API tümleştirme türleri

AWS üzerinde Uygulama Geliştirme

İstek doğrulama

 

istek doğrulama

  • İstekleri arka uca ulaşmadan önce doğrula
  • Zorunlu alan eksiklerini yakalar
  • Geçersiz JSON biçimini yakalar
  • Hatalı parametre türlerini yakalar
  • Başarısızlıklar genelde 400 Bad Request döner
AWS üzerinde Uygulama Geliştirme

İstek doğrulama

 

istek doğrulama

  • Doğrulama şunları kapsayabilir:
    • Başlıklar
    • Sorgu dizesi parametreleri
    • İstek gövdesi
    • JSON şeması
AWS üzerinde Uygulama Geliştirme

İstek doğrulama

 

istek doğrulama

  • Doğrulamanın faydaları:
    • Geçersiz arka uç isteklerini azaltır
    • Lambda yürütme maliyetini düşürür
    • API güvenilirliğini artırır
AWS üzerinde Uygulama Geliştirme

Dönüşümler

  • Arka uç koduna dokunmadan istek ve yanıtları yeniden şekillendir
    • Yük yapısını değiştir
    • Alanları yeniden adlandır
    • Başlıkları dönüştür
    • Veri biçimlerini çevir
    • Uygulama ayrıntılarını gizle
  • VTL eşleme şablonlarıyla çalışır

 

API dönüşümü

AWS üzerinde Uygulama Geliştirme

Hatalarla başa çıkma

 

API hataları

  • İki hata kategorisi
    • Ağ geçidi hataları: API Gateway tarafından üretilir
    • Tümleştirme hataları: arka uç arızaları
  • Yaygın ağ geçidi hataları:
    • 400 Bad Request: istek doğrulaması başarısız
    • 429 Too Many Requests: sınır aşıldı (throttling)
AWS üzerinde Uygulama Geliştirme

Hatalarla başa çıkma

 

API hataları

  • Yaygın tümleştirme hataları:
    • 502 Bad Gateway: bozuk veya hatalı yanıt
    • 503 Service Unavailable: arka uç yok veya aşırı yükte
    • 504 Gateway Timeout: 29 saniyelik zaman aşımı aşıldı
    • Bölgesel ve Özel REST API'leri 29 saniyeyi aşabilir
AWS üzerinde Uygulama Geliştirme

Günlükleme

  • Yürütme günlükleri ve CloudWatch metrikleri temel hata ayıklama araçlarıdır
  • API Gateway, CloudWatch ile şunlar için tümleşir:
    • Günlükler
    • Metrikler
    • Yürütme izleme

 

 

API gözlemlenebilirliği

AWS üzerinde Uygulama Geliştirme

Günlükleme

  • CloudWatch günlükleri şunlarda sorun gidermeye yardım eder:
    • Başarısız tümleştirmeler
    • Dönüşüm hataları
    • Yetkilendirme hataları
    • Lambda yürütme sorunları

 

 

API gözlemlenebilirliği

AWS üzerinde Uygulama Geliştirme

Aşamalar: API'leri ortamlar arasında yönetme

 

Aşamalar

  • Tek bir API tanımı birden çok ortamı destekler
  • API Gateway bu ortamları aşamalarla yönetir
AWS üzerinde Uygulama Geliştirme

Aşamalar: API'leri ortamlar arasında yönetme

 

Aşamalar

  • Tek bir API tanımı birden çok ortamı destekler
  • API Gateway bu ortamları aşamalarla yönetir
  • Aşama, adlandırılmış bir başvurudur
  • API yapılandırmanın bir dağıtım anlık görüntüsünü işaret eder
AWS üzerinde Uygulama Geliştirme

Aşamalar: API'leri ortamlar arasında yönetme

 

Aşamalar

  • Tek bir API tanımı birden çok ortamı destekler
  • API Gateway bu ortamları aşamalarla yönetir
  • Aşama, adlandırılmış bir başvurudur
  • API yapılandırmanın bir dağıtım anlık görüntüsünü işaret eder
  • Yaygın aşama adları:
    • Dev
    • Test
    • QA ve Prod
AWS üzerinde Uygulama Geliştirme

Aşamalar: API'leri ortamlar arasında yönetme

 

Aşamalar

  • Tek bir API tanımı birden çok ortamı destekler
  • API Gateway bu ortamları aşamalarla yönetir
  • Aşama, adlandırılmış bir başvurudur
  • API yapılandırmanın bir dağıtım anlık görüntüsünü işaret eder
  • Yaygın aşama adları: Dev, Test, QA, Prod
  • Her aşamaya çağırma URL'si yansır
AWS üzerinde Uygulama Geliştirme

Aşamalar: API'leri ortamlar arasında yönetme

 

Aşamalar

  • Tek bir API tanımı birden çok ortamı destekler
  • API Gateway bu ortamları aşamalarla yönetir
  • Aşama, adlandırılmış bir başvurudur
  • API yapılandırmanın bir dağıtım anlık görüntüsünü işaret eder
  • Yaygın aşama adları: Dev, Test, QA, Prod
  • Her aşamaya çağırma URL'si yansır
  • Birden çok aşama, anında geri alma için tek bir dağıtıma işaret edebilir
AWS üzerinde Uygulama Geliştirme

Aşamalar: API'leri ortamlar arasında yönetme

 

Aşamalar

  • Değişiklikler yalnızca bir aşamaya dağıtılınca canlı olur
AWS üzerinde Uygulama Geliştirme

Aşama yetenekleri

  • Her aşama bağımsız yapılandırılır
  • Yapılandırma, aşama değişkenlerini içerir
  • Aşama değişkenleri anahtar-değer çiftleridir
  • Tek bir dağıtımı farklı arka uçlara yönlendir
  • Ortam değişiklikleri için yeniden dağıtım gerekmez

 

aşama

AWS üzerinde Uygulama Geliştirme

Aşama yetenekleri

  • Kanarya dağıtımları
    • Yalnızca REST API'ler
    • Trafiğin bir yüzdesini yeni dağıtıma gönder
    • Tam sürüme yükselt
    • Geri almak için kanaryayı sil

 

aşama

AWS üzerinde Uygulama Geliştirme

Aşama yetenekleri

  • Kısıtlama (throttling)
    • Aşama düzeyinde ayarlanır
    • Tüm yöntemler için geçerlidir; yöntem bazında geçersiz kılınabilir

 

aşama

AWS üzerinde Uygulama Geliştirme

Aşama yetenekleri

  • Kısıtlama (throttling)
    • Aşama düzeyinde ayarlanır
    • Tüm yöntemler için geçerlidir; yöntem bazında geçersiz kılınabilir
  • Önbellekleme
    • Yalnızca REST API'ler
    • Arka uç yanıtlarını aşamada saklar
    • İstemciler Cache-Control ile atlayabilir
    • TTL 0–3600 saniye, varsayılan 300

 

aşama

AWS üzerinde Uygulama Geliştirme

Aşama yetenekleri

  • Günlüklemede iki kip vardır
    • Erişim günlükleri
    • $context değişkenlerinden oluşturulur, bir CloudWatch günlük grubuna gönderilir
    • Yürütme günlükleri
    • Tam istek ve yanıt ayrıntısını yakalar

 

aşama

AWS üzerinde Uygulama Geliştirme

Hadi pratik yapalım!

AWS üzerinde Uygulama Geliştirme

Preparing Video For Download...