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)
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
- İş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
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
- İş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:- 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.
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
Detaylı deployment bilgisi için Deployment Modelleri sayfasına bakabilirsiniz.
API Proxy Avantajları
Güvenlik
Güvenlik
- Merkezi güvenlik yönetimi
- Backend API’lerin korunması
- Hassas verilerin maskeleme
- Audit logging
Performans
Performans
- Caching
- Load balancing
- Connection pooling
- Response compression
Yönetilebilirlik
Yönetilebilirlik
- Merkezi konfigürasyon
- Versiyonlama
- Monitoring ve analytics
- Lifecycle management
Entegrasyon
Entegrasyon
- Format dönüştürme (SOAP ↔ REST)
- Protokol dönüştürme
- Veri zenginleştirme
- Backend abstraction

