Ana içeriğe atla

API Proxy Kavramı

API Proxy, istemcilerden gelen istekleri alan, bu isteklere çeşitli politikalar uygulayan ve ardından backend API’lere yönlendiren bir ara katmandır. Backend API’lerin önünde durarak, API yönetimi ve güvenlik işlevlerini merkezi bir noktadan sağlar.

Güvenlik Katmanı

API Proxy, backend API’lerin önünde bir güvenlik katmanı oluşturur. Kimlik doğrulama, yetkilendirme, rate limiting gibi güvenlik kontrolleri burada yapılır.

Trafik Yönetimi

İsteklerin yönlendirilmesi, yük dengeleme, failover gibi trafik yönetimi işlevleri API Proxy tarafından sağlanır.

Mesaj Dönüştürme

Mesaj formatlarının dönüştürülmesi (JSON ↔ XML, SOAP ↔ REST) API Proxy üzerinde yapılır.

Doğrulama ve Zenginleştirme

Mesaj içeriğinin doğrulanması ve zenginleştirilmesi API Proxy’de gerçekleşir.

API Proxy Nasıl Çalışır?

Aşağıdaki diyagram, istek ve yanıt akışının API Proxy üzerinden nasıl gerçekleştiğini gösterir:

İstek Akışı

API Proxy’ye gelen bir istek şu adımlardan geçer: 1. İstemci → API Proxy
  • İstemci HTTPS isteği gönderir
  • API Proxy isteği alır (Policy Enforcement Point)
2. API Proxy İçinde İşlemler:

1. Güvenlik

  • Kimlik doğrulama (Authentication)
  • Yetkilendirme (Authorization)

2. Doğrulama

  • Mesaj doğrulama
  • Şema kontrolü

3. Dönüştürme

  • Format dönüştürme (JSON ↔ XML, SOAP ↔ REST)

4. Zenginleştirme

  • Header ekleme
  • Veri ekleme

5. Yönlendirme

  • Backend API’ye yönlendirme
3. API Proxy → Backend API
  • İşlenmiş istek Backend API’ye gönderilir

Yanıt Akışı

Backend API’den dönen yanıt şu adımlardan geçer: 1. Backend API → API Proxy
  • Backend API yanıt gönderir
  • API Proxy yanıtı alır
2. API Proxy İçinde İşlemler:

1. Dönüştürme

  • Format dönüştürme (JSON ↔ XML, SOAP ↔ REST)

2. Maskeleme

  • Hassas veri maskeleme

3. Loglama

  • İşlem kaydı

4. Yanıt

  • İşlenmiş yanıt hazırlanır
3. API Proxy → İstemci
  • İşlenmiş yanıt HTTPS üzerinden istemciye gönderilir

API Proxy Türleri

REST API Proxy

REST API’ler için proxy. JSON formatında mesaj işleme.

SOAP API Proxy

SOAP Web Servisleri için proxy. XML formatında mesaj işleme.

gRPC API Proxy

gRPC servisleri için proxy. Protobuf formatında mesaj işleme.

WebSocket Proxy

WebSocket bağlantıları için proxy. Gerçek zamanlı iletişim.

DB-2-API

Veritabanından API oluşturma. SQL sorgularını API olarak expose etme.

Script-2-API

JavaScript/Groovy script’lerinden API oluşturma.

Mock API

Mock API oluşturma. Test ve geliştirme için.

Connector API Proxy

Konnektörlerden API Proxy oluşturma. HTTP’yi farklı protokollere (Kafka, E-posta vb.) dönüştürme imkanı sağlar.

API Proxy Oluşturma

API Proxy oluştururken şu adımlar izlenir:
  1. Proje Seçimi: API Proxy’nin oluşturulacağı proje seçilir
  2. API Tanımı: OpenAPI/Swagger, WSDL dosyasından import veya Reverse Proxy, No-Spec API, gRPC, WebSocket, DB-2-API, Script-2-API, Mock API gibi seçeneklerden biri seçilir
  3. Client Route Yapılandırması: İstemcilerin erişeceği path, method ve host tanımları
  4. Upstream Target Tanımlama: Backend API’nin adresi ve yönlendirme ayarları
  5. Politika Ekleme: Güvenlik, doğrulama, dönüştürme politikaları
  6. Ayarlar: CORS, Timeout, Retry politikaları ve hata mesajı şablonları
  7. Test: Test Console ile test etme
  8. Deployment: Ortam(lar)a yükleme
Detaylı API Proxy oluşturma ve yönetimi için API Proxy Oluşturma sayfasına bakabilirsiniz.

API Proxy Bileşenleri

Client Route

Client Route, istemcilerin API Proxy’ye erişmek için kullanacağı yönlendirme bilgisidir. API Proxy’nin dış dünyaya açılan kapısıdır. Client Route yapılandırması için en az bir seçenek (Path, Method veya Header bazlı) seçilmelidir. Client Route Bileşenleri:
  • Relative Paths: API Proxy’ye yönlendirilecek relative URL path’leri. Her path ”/” ile başlamalıdır ve proje bazında benzersiz olmalıdır. Örnek: /petstoreProxy, /api/v1/users
  • Methods: Bu API Proxy için izin verilen HTTP metodları (GET, POST, PUT, DELETE, PATCH, OPTIONS, HEAD)
  • Hosts: Backend servislerin host adresleri. Birden fazla host eklenerek load balancing ve failover sağlanabilir
  • Headers: API Proxy seviyesinde eklenecek veya değiştirilecek HTTP header’ları. Key-value çiftleri olarak tanımlanır

Upstream Target

Backend API’nin adresi. API Proxy’nin istekleri yönlendirdiği hedeftir. Birden fazla upstream target tanımlanarak yük dengeleme ve failover sağlanabilir.

Policies

API Proxy’ye uygulanan politikalar:
  • Güvenlik politikaları: OAuth2, JWT, mTLS, API Key
  • Trafik yönetimi politikaları: Rate Limiting, Quota, Throttling
  • Dönüştürme politikaları: JSON Transform, XML Transform, SOAP to REST
  • Doğrulama politikaları: JSON Schema, XML Schema, Request/Response Validation
  • Zenginleştirme politikaları: Header ekleme, veri ekleme, mesaj dönüştürme

Settings

API Proxy’nin genel davranışını kontrol eden ayarlar:
  • CORS Ayarları: Cross-Origin Resource Sharing yapılandırması
  • Timeout Ayarları: İstek ve yanıt timeout değerleri
  • Retry Politikaları: Başarısız istekler için yeniden deneme
  • Hata Mesajları: Özelleştirilebilir hata mesajı şablonları
  • Backend API Ayarları: Backend API yapılandırması

Versiyonlama

API Proxy’ler versiyonlanabilir. Farklı versiyonlar farklı ortamlara deploy edilebilir ve aynı anda çalışabilir. Versiyonlama sayesinde API yaşam döngüsü yönetilebilir.

API Proxy ve Proje/Ortam İlişkisi

API Proxy’ler projeler içinde oluşturulur ve ortamlara deploy edilir:
  • Proje: API Proxy’ler projeler içinde oluşturulur. Her proje kendi API Proxy’lerini içerir ve proje bazında izolasyon sağlanır.
  • Ortam: API Proxy’ler bir veya birden fazla ortama deploy edilebilir. Aynı API Proxy farklı ortamlarda farklı versiyonlarıyla çalışabilir.
Proje: E-Ticaret API'leri
└─ Product API Proxy
   ├─ Development Ortamı → Product API v1.0
   ├─ Test Ortamı → Product API v1.1
   ├─ Sandbox Ortamı → Product API v1.2
   └─ Production Ortamı → Product API v1.2
API Proxy’lerin proje ve ortam ile ilişkisi hakkında daha fazla bilgi için Proje Nedir? ve Ortam Nedir? sayfalarına bakabilirsiniz.

Deployment (Dağıtım)

API Proxy’ler oluşturulduktan sonra ortamlara deploy edilmelidir. Deployment işlemi:
  • Ortam Seçimi: API Proxy’nin deploy edileceği ortam(lar) seçilir
  • Versiyon Yönetimi: Her deployment için versiyon bilgisi saklanır
  • Durum Takibi: Deployment durumu (deployed, undeployed, redeploy required) takip edilir
  • Rollback: Gerekirse önceki versiyona geri dönülebilir
Önemli: İstemcinin API Proxy’e erişebilmesi için en az bir ortama deploy edilmiş olması gerekir.
Detaylı deployment bilgisi için Deployment Modelleri sayfasına bakabilirsiniz.

API Proxy Avantajları

  • Merkezi güvenlik yönetimi
  • Backend API’lerin korunması
  • Hassas verilerin maskeleme
  • Audit logging
  • Caching
  • Load balancing
  • Connection pooling
  • Response compression
  • Merkezi konfigürasyon
  • Versiyonlama
  • Monitoring ve analytics
  • Lifecycle management
  • Format dönüştürme (SOAP ↔ REST)
  • Protokol dönüştürme
  • Veri zenginleştirme
  • Backend abstraction

Sonraki Adımlar