API Proxy Nedir?
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.
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.
İsteklerin yönlendirilmesi, yük dengeleme, failover gibi trafik yönetimi işlevleri API Proxy tarafından sağlanır.
Mesaj formatlarının dönüştürülmesi (JSON ↔ XML, SOAP ↔ REST) API Proxy üzerinde yapılır.
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:
sequenceDiagram
participant Client as 👤 İstemci
participant Gateway as 🚪 API Gateway
participant Proxy as 🔀 API Proxy
participant Policies as 🛡️ Politikalar
participant Backend as 🖥️ Backend API
Client->>Gateway: HTTPS İsteği<br/>(Path, Method, Headers, Body)
Note over Gateway: İstek Gateway'e Ulaştı
Gateway->>Proxy: İsteği API Proxy'ye Yönlendir
Note over Proxy: API Proxy İşleme Başladı
Proxy->>Policies: Pre-flow Politikaları<br/>Uygulanır
Note over Policies: İstek İşleme Politikaları
Policies->>Policies: 1️⃣ Güvenlik<br/>Authentication & Authorization
Policies->>Policies: 2️⃣ Doğrulama<br/>Mesaj & Şema Kontrolü
Policies->>Policies: 3️⃣ Dönüştürme<br/>Format Dönüştürme<br/>(JSON ↔ XML, SOAP ↔ REST)
Policies->>Policies: 4️⃣ Zenginleştirme<br/>Header & Veri Ekleme
Policies->>Proxy: İstek İşleme Tamamlandı
Proxy->>Proxy: 5️⃣ Yönlendirme<br/>Routing Logic Uygulanır
Proxy->>Backend: İşlenmiş İstek<br/>Backend API'ye İletilir
Backend->>Proxy: Yanıt Döner
Note over Proxy: Yanıt İşleme Başladı
Proxy->>Policies: Post-flow Politikaları<br/>Uygulanır
Note over Policies: Yanıt İşleme Politikaları
Policies->>Policies: 1️⃣ Dönüştürme<br/>Format Dönüştürme
Policies->>Policies: 2️⃣ Maskeleme<br/>Hassas Veri Maskeleme
Policies->>Policies: 3️⃣ Loglama<br/>İşlem Kaydı
Policies->>Proxy: Yanıt İşleme Tamamlandı
Proxy->>Gateway: İşlenmiş Yanıt
Gateway->>Client: HTTPS Yanıtı
Note over Client,Gateway: İşlem Tamamlandı
İ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:
- Kimlik doğrulama (Authentication)
- Yetkilendirme (Authorization)
- Mesaj doğrulama
- Şema kontrolü
- Format dönüştürme (JSON ↔ XML, SOAP ↔ REST)
- Header ekleme
- Veri ekleme
- 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:
- Format dönüştürme (JSON ↔ XML, SOAP ↔ REST)
- Hassas veri maskeleme
- İşlem kaydı
- İşlenmiş yanıt haz ırlanır
3. API Proxy → İstemci
- İşlenmiş yanıt HTTPS üzerinden istemciye gönderilir
API Proxy Türleri
REST API'ler için proxy. JSON formatında mesaj işleme.
SOAP Web Servisleri için proxy. XML formatında mesaj işleme.
gRPC servisleri için proxy. Protobuf formatında mesaj işleme.
WebSocket bağlantıları için proxy. Gerçek zamanlı iletişim.
Veritabanından API oluşturma. SQL sorgularını API olarak expose etme.
JavaScript/Groovy script'lerinden API oluşturma.
Mock API oluşturma. Test ve geliştirme için.
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:
- Proje Seçimi: API Proxy'nin oluşturulacağı proje seçilir
- 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
- Client Route Yapılandırması: İstemcilerin erişeceği path, method ve host tanımları
- Upstream Target Tanımlama: Backend API'nin adresi ve yönlendirme ayarları
- Politika Ekleme: Güvenlik, doğrulama, dönüştürme politikaları
- Ayarlar: CORS, Timeout, Retry politikaları ve hata mesajı şablonları
- Test: Test Console ile test etme
- 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ı
Güvenlik
- Merkezi güvenlik yönetimi
- Backend API'lerin korunması
- Hassas verilerin maskeleme
- Audit logging
Performans
- Caching
- Load balancing
- Connection pooling
- Response compression
Yönetilebilirlik
- Merkezi konfigürasyon
- Versiyonlama
- Monitoring ve analytics
- Lifecycle management
Entegrasyon
- Format dönüştürme (SOAP ↔ REST)
- Protokol dönüştürme
- Veri zenginleştirme
- Backend abstraction