0Pricing
AWS Solutions Architect · Ders

REST API ve HTTP API ve WebSocket API

REST API'nin (özellik açısından zengin), HTTP API'nin (düşük gecikmeli ve düşük maliyetli) ve WebSocket API'nin (çift yönlü) ödünleşimlerini anlayacak ve uygun seçimi yapacaksınız.

REST API ve HTTP API ve WebSocket API, CoddyKit'te ücretsiz bir AWS Solutions Architect dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, AWS Solutions Architect öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. AWS Solutions Architect kursu toplamda 4 dersten oluşur.

API Gateway Neden Var

Amazon API Gateway, her ölçekte API'ler oluşturmanıza, yayımlamanıza, güvenli hâle getirmenize ve izlemenize olanak tanıyan, tamamen yönetilen bir hizmettir. Arka uç hizmetleriniz için ön kapı görevi görür: Lambda işlevleri, EC2 bulut sunucuları, HTTP arka uçları veya herhangi bir AWS hizmeti. API Gateway trafik yönetimi, yetkilendirme, hız sınırlama, izleme ve API sürümlemeyi üstlenir; böylece arka ucunuz API altyapısıyla ilgili konular yerine iş mantığına odaklanabilir.

REST API: Özellikler Açısından Zengin Geleneksel API

REST API (özgün API Gateway ürünü), en geniş özellik kümesini sunar: eşleme şablonlarıyla istek/yanıt dönüştürme, yöntem başına hız sınırlama, API anahtarları içeren kullanım planları, yanıt önbelleğe alma, WAF entegrasyonu, X-Ray izleme, kaynak politikaları ve istemci sertifikasıyla karşılıklı TLS. REST API'ler tüm entegrasyon türlerini destekler: Lambda, HTTP, AWS hizmeti, Mock ve Lambda Proxy. Dönüştürme, önbelleğe alma veya kullanım planları gibi gelişmiş özelliklere ihtiyacınız olduğunda REST API kullanın.

HTTP API: Düşük Gecikmeli, Düşük Maliyetli Alternatif

HTTP API, REST API'ye kıyasla daha basit, daha ucuz ve daha hızlı bir alternatif olarak tasarlanmıştır. Yalnızca Lambda proxy ve HTTP proxy entegrasyonlarını destekler; AWS hizmeti entegrasyonlarını ve Mock'u desteklemez. Temel avantajları şunlardır: REST API'ye göre %70'e kadar daha düşük maliyet, daha düşük gecikme, yerleşik OIDC ve OAuth 2.0 JWT yetkilendirmesi (yaygın kimlik doğrulama senaryolarında Lambda yetkilendiricisine gerek kalmaz) ve otomatik dağıtım. Önbelleğe alma, kullanım planları veya istek/yanıt dönüştürme gerekmiyorsa HTTP API daha iyi bir seçimdir.

# Create a simple HTTP API
aws apigatewayv2 create-api \
  --name 'MyHttpAPI' \
  --protocol-type HTTP \
  --target 'arn:aws:lambda:us-east-1:123456789012:function:MyLambda'

WebSocket API: Çift Yönlü Gerçek Zamanlı İletişim

WebSocket API, istemciler ile sunucu arasında kalıcı, çift yönlü bağlantılar sürdürür. İstek-yanıt modelindeki HTTP'nin aksine WebSocket, istemcinin yoklama yapmasına gerek kalmadan sunucunun istediği zaman bağlı istemcilere mesaj göndermesine olanak tanır. API Gateway, WebSocket bağlantılarını yönetir ve mesajları rota ifadelerine göre Lambda işlevlerine yönlendirir. WebSocket API'lerini sohbet uygulamaları, canlı panolar, ortaklaşa düzenleme, oyun ve hisse senedi göstergeleri gibi gerçek zamanlı uygulamalarda kullanın.

WebSocket Rotaları ve Bağlantı Yönetimi

WebSocket API'lerinde yerleşik üç rota vardır: $connect (istemci bağlantı açtığında tetiklenir), $disconnect (bağlantı kapandığında tetiklenir) ve $default (eşleşmeyen mesajları yakalar). Belirli Lambda işlevlerine eşlenen sendmessage gibi özel rotalar ekleyebilirsiniz. Lambda işlevinizden bağlı istemcilere, istemcinin bağlantı kimliğini kullanarak mesaj göndermek için @connections yönetim API'sini kullanın.

# Send a message to a specific WebSocket client from Lambda
import boto3

gw_client = boto3.client(
    'apigatewaymanagementapi',
    endpoint_url='https://abc123.execute-api.us-east-1.amazonaws.com/prod'
)

def lambda_handler(event, context):
    connection_id = event['requestContext']['connectionId']
    gw_client.post_to_connection(
        Data='{"type": "message", "text": "Hello!"}',
        ConnectionId=connection_id
    )

Özellik Karşılaştırması: REST ve HTTP ve WebSocket

Temel farklar kısaca şöyledir:

  • REST API: tüm özellikler (önbelleğe alma, kullanım planları, dönüştürmeler, WAF), daha yüksek maliyet ve tüm entegrasyon türleri desteği
  • HTTP API: yalnızca Lambda/HTTP proxy, %70 daha ucuz, yerleşik JWT kimlik doğrulaması, daha düşük gecikme, önbelleğe alma veya kullanım planı yok
  • WebSocket API: kalıcı çift yönlü bağlantılar, sunucudan gönderim olanağı ve milyon mesaj başına ve bağlantı süresinin dakikası başına ücretlendirme

SAA-C03 sınavı için: Gerçek zamanlı veya gelişmiş özellikler içermeyen HTTP soruları → HTTP API. Gerçek zamanlı gönderim → WebSocket. Karmaşık API özellikleri → REST API.

Aşamalar ve Dağıtımlar

API Gateway API'leri aşamalara dağıtılır (ör. dev, staging, prod). Her aşamanın kendine ait URL'si ve hız sınırlama ayarları vardır; ayrıca belirli bir dağıtım anlık görüntüsüne başvurabilir. Arka uç uç noktalarını aşamaya göre parametreleştirmek için aşama değişkenlerini (ortam değişkenlerine benzer) kullanın. Örneğin API yapılandırmasını çoğaltmadan dev aşamasını bir geliştirme Lambda takma adına, prod aşamasını ise üretim takma adına yönlendirebilirsiniz.

# REST API: create a deployment and stage
aws apigateway create-deployment \
  --rest-api-id 'abc123' \
  --stage-name 'prod'

# Set stage variable
aws apigateway update-stage \
  --rest-api-id 'abc123' \
  --stage-name 'prod' \
  --patch-operations 'op=replace,path=/variables/lambdaAlias,value=prod'

Özel Etki Alanı Adları ve Temel Yol Eşlemeleri

Varsayılan olarak API Gateway URL'leri API kimliğini içerir (ör. abc123.execute-api.us-east-1.amazonaws.com). Üretim kullanımı için ACM sertifikasıyla desteklenen bir özel etki alanı adı oluşturun ve bunu API'nize ve aşamanıza eşleyin. Tek bir etki alanı altında birden çok API barındırmak için temel yol eşlemelerini kullanın (ör. api.example.com/orders → Orders API, api.example.com/users → Users API). Özel etki alanı adları, API Gateway uç noktasını gösteren bir Route 53 takma adı kaydı gerektirir.

Kenar İçin Optimize Edilmiş, Bölgesel ve Özel API'ler

REST API'ler üç uç nokta türünde dağıtılabilir: Edge-Optimised (küresel dağıtım için CloudFront ön ucu, varsayılan), Regional (CloudFront yoktur; aynı bölgedeki istemciler için veya kendi CloudFront'unuzu eklediğinizde daha düşük gecikme) ve Private (yalnızca bir arayüz VPC uç noktası aracılığıyla VPC'nizin içinden erişilebilir; dahili mikro hizmetler için). HTTP API'ler Edge-Optimised ve Regional türlerini destekler. WebSocket API'ler Regional ve Private türlerini destekler. Aynı bölgeden tüketilen API'ler için veya özel CloudFront dağıtımları kullanırken Regional seçin.

API Gateway ile Kanarya Dağıtımları

API Gateway REST API'leri bir aşamada kanarya dağıtımlarını destekler. Trafiğin belirli bir yüzdesini kanarya dağıtımına (yeni sürüme), kalanını ise üretim dağıtımına yönlendirebilirsiniz. Kanaryadaki hata oranlarını ve gecikmeyi izleyin; kararlıysa trafiği %100'e çıkarın. Sorun ortaya çıkarsa kanarya ağırlığını 0 olarak ayarlayarak geri alın. Bu yöntem, Lambda takma adı ağırlıklı yönlendirmesine benzer ve mavi/yeşil ortam geçişi yapmadan güvenli, kademeli API güncellemelerine olanak tanır.

Sınav İçin Doğru API Türünü Seçme

API türünü belirlemek için SAA-C03 sınav sorularındaki anahtar kelimeler: 'cost-effective simple API' → HTTP API; 'real-time bidirectional', 'server push' veya 'chat' → WebSocket API; 'request transformation', 'usage plans', 'API key throttling' veya 'response caching' → REST API. Soru yalnızca 'Lambda'yı düşük maliyetli bir HTTP uç noktası olarak kullanıma açma' ile ilgiliyse HTTP API öne çıkar. Soru karmaşık API yönetimi özelliklerini veya iş ortaklarını içeriyorsa genellikle doğru seçenek REST API'dir.

Kısa Kontrol

Bu dersteki AWS Solutions Architect (SAA-C03) kavramlarını anlayıp anlamadığınızı test edin.

Ders Özeti

Bu derste şunları öğrendiniz: REST API, API Gateway'in tüm özelliklerini (önbelleğe alma, dönüştürmeler, kullanım planları, WAF) daha yüksek bir maliyetle sunar; HTTP API, yerleşik JWT kimlik doğrulaması ve daha düşük gecikmeyle %70 daha ucuzdur ve gelişmiş özellikler gerektirmeyen Lambda/HTTP proxy senaryoları için idealdir; WebSocket API ise sohbet, oyun ve canlı veri uygulamalarında kalıcı bağlantılar üzerinden sunucudan gerçek zamanlı gönderim sağlar. Sırada API Gateway'in Lambda, HTTP arka uçları ve sahte yanıtlarla entegrasyonlarını inceliyoruz.

Sıkça Sorulan Sorular

“REST API ve HTTP API ve WebSocket API” dersi ücretsiz mi?

Evet — “REST API ve HTTP API ve WebSocket API” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve AWS Solutions Architect kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. AWS Solutions Architect kursu toplamda 4 dersten oluşur.

“REST API ve HTTP API ve WebSocket API” dersinde ne öğreneceğim?

REST API'nin (özellik açısından zengin), HTTP API'nin (düşük gecikmeli ve düşük maliyetli) ve WebSocket API'nin (çift yönlü) ödünleşimlerini anlayacak ve uygun seçimi yapacaksınız. AWS Solutions Architect ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

AWS Solutions Architect öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te AWS Solutions Architect, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“REST API ve HTTP API ve WebSocket API” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu AWS Solutions Architect dersinde kod yazıp çalıştırabilir miyim?

Evet. Her AWS Solutions Architect dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. REST API ve HTTP API ve WebSocket API
  2. Entegrasyonlar: Lambda, HTTP ve Taklit
  3. Yetkilendirme: IAM, Lambda Yetkilendiricileri ve Cognito
  4. Kısıtlama, Önbelleğe Alma ve Kullanım Planları
← AWS Solutions Architect Sayfasına Dön