Bir politika (policy), API Gateway'de istemciden gelen istekleri ve Backend API'den dönen yanıtları belirli kurallara göre işlemek için kullanılan yapılandırılabilir bir bileşendir.

Politikalar aracılığıyla aşağıdaki işlemleri gerçekleştirebilirsiniz:

  • Güvenlik kuralları uygulayabilirsiniz. Kimlik doğrulama (Basic Auth, OAuth2, OIDC, JWT vb.) ve yetkilendirme (role-based access control) mekanizmalarını politikalar ile tanımlarız.
  • Trafik yönetimi yapabilirsiniz. Kullanıcılar veya uygulamalar başına düşen kota (belirli dönem içinde yapılabilecek istek sayısı) ve hız sınırı (rate limiting) politikaları ile API'lerinizi aşırı yüklenmelerden koruyabilirsiniz.
  • Veri dönüşümü sağlayabilirsiniz. Gelen istekleri veya dönen yanıtları farklı formatlara dönüştürebilirsiniz (örneğin XML'i JSON'a çevirme, veri yapısını yeniden biçimlendirme).
  • Hata mesajlarını özelleştirebilirsiniz. Sistem tarafından dönen hata mesajlarını, kurumsal standartlara veya kullanıcı dostu bir dile çevirebilirsiniz.
  • İş mantığı uygulayabilirsiniz. JavaScript veya Groovy gibi betik dilleri veya koşullu mantık politikaları kullanarak basit iş kurallarını API Gateway seviyesinde tanımlayabilirsiniz.
  • Mesaj içeriğini zenginleştirebilirsiniz. İstek veya yanıta header ekleyebilir, metadata ekleyebilir veya hassas verileri maskeyleyebilirsiniz.

Politikalar konfigürasyon temelli çalışır. Kod yazmanıza veya uygulama deploy etmenize gerek yoktur. Arayüzde sürükle-bırak, parametre girişi veya konfigürasyon seçimleriyle politikaları anında etkinleştirebilir, güncelleyebilir veya devre dışı bırakabilirsiniz.

Politikanın Amacı ve Faydaları

Merkezi Kontrol API'lerin davranışı, güvenliği ve performansı tek bir noktadan yönetilir. Bu sayede dağıtık sistemlerde tutarlılık sağlanır ve yönetim karmaşıklığı azalır.

Erişim Denetimi (Access Control) Politikaları Kimlik doğrulama, yetkilendirme ve API kaynaklarına erişim izinleri politikalar aracılığıyla tanımlanır. Böylece yetkisiz erişimler önlenir ve güvenlik sağlanır.

Yeniden Kullanılabilirlik Bir kez tanımlanan politika, birden fazla API, endpoint veya servis tarafından kullanılabilir. Bu, policy yönetimini basitleştirir ve geliştirme sürecini hızlandırır.

Kod Bakım Yükünü Azaltma Güvenlik, veri dönüşümü ve doğrulama işlemleri kod içinde değil, gateway konfigürasyonunda yapılır. Bu, uygulamaların kodundaki karmaşıklığı azaltır ve bakım maliyetlerini düşürür.

Tutarlılık Tüm API'ler aynı politikalara tabi olduğundan, enterprise-wide güvenlik ve performans standartları tutarlı şekilde uygulanır. İstisnalar minimal düzeyde kalır.

Hızlı Müdahale ve Esneklik Politikalar anında devre dışı bırakılabilir, güncellenebilir veya yeniden deploy edilebilir. Böylece güvenlik tehditlerine hızlı yanıt verilir, performans sorunları çözülür veya iş kuralları değişikliğe uyum sağlanır.

Politika Kullanım Tipleri

Yerel Politika (Local Policy)

Yalnızca oluşturulduğu API Proxy'de veya API Proxy Grupta geçerlidir. Bulunduğu API Proxy veya API Proxy Grup silinirse politika da silinir.

Bulunduğu yerde export, import, activate, deactivate işlemleri yapılabilir 


Global Politika (Global Policy)

Global Politikalar sayfasında oluşturulan politikalardır. Birden fazla API Proxy veya API Proxy Grup tarafından kullanılabilir.

Global politikada değişiklik yapılırsa, politikayı kullanan tüm API Proxy'ler ve API Proxy Gruplar "Redeploy Required" durumuna geçer.

Bu ekrandaki toplu deploy işlemi ile ilgili tüm API Proxy/API Proxy Gruplar birlikte deploy edilebilir.

Ayrıca bu ekranlardan politika export, import, activate, deactivate işlemleri de gerçekleştirilebilir.

Global Politikayı Yerelleştirme:

Global olarak oluşturulmuş politika bir API Proxy/API proxy Group'da kullanımı sırasında özelleştirilmesi gerekebilir.

Bu durumda aşağıdaki görselde görüldüğü gibi API Proxy/API proxy Group'a eklenen politikaya tıklanır ve sağ üst köşedeki "Yerelleştir" tuşuna basılarak tek tıklama ile yerel hâle getirilebilir:

Global Politikanın Kullanıldığı Yerler:

Bir global politikanın hangi API proxylerde, API proxy gruplarında veya politika gruplarında kullanıldığını takip etmek, yönetim ve güncelleme süreçlerinde kritik öneme sahiptir.

Her politika detay sayfasında, politikanın kullanım bilgileri aşağıdaki görseldeki gibi görüntülenir:

Kullanıldığı API Proxy'ler Paneli: Bu bölümde, politikayı kullanan API Proxy'lerin listesi görüntülenir.

Kullanıldığı API Proxy Grupları Paneli: Bu bölümde, politikayı kullanan API Proxy gruplarının listesi görüntülenir.

Kullanıldığı Politika Grupları Paneli: Bu bölümde, bu politikayı içeren politika gruplarının listesi görüntülenir.

Global ve Yerel Politika Karşılaştırması

Global PolitikaLocal Politika
Birden fazla API Proxy'de kullanılabilirSadece bir API Proxy'de kullanılır
Merkezi yönetilirProxy bazında yönetilir
Bir kez güncellenir, tüm kullanımlar etkilenirHer proxy için ayrı güncelleme gerekir
Yeniden kullanılabilirliği yüksekYeniden kullanılabilirliği düşük

Politika Uygulama Noktaları

Politikalar üç farklı seviyede uygulanabilir:

Uygulama NoktasıAçıklama
API Proxy GrubuBir gruptaki tüm API Proxy'lere uygulanır
API ProxyBelirli bir API Proxy içindeki tüm metot/endpoint'lere uygulanır
Metot/EndpointYalnızca ilgili metot veya endpoint için geçerlidir

Politikaların mesaj akışındaki uygulama sırası, API Proxy Group/API Proxy/Endpoint seviyelerindeki çalışma mantığı ve görsel akış diyagramı hakkında detaylı bilgi için Mesaj Akışı ve Politika Yönetimi sayfasına bakınız.

Politikayı Görüntüleme

Her global politika için, kullanıcıların mevcut yapılandırmayı görüntüleyebileceği Politika Görünüm Sayfası bulunmaktadır. 

Yerel Politika'lar sadece bulunduğu API Proxy veya API Proxy Grup içinden görüntülenebilirken, Global Politikalar menüden ilgili politika grubunun listeleme sayfasından görüntülenir.

Görüntülenen sayfadan düzenleme, export, import, activate, deactivate ve silme işlemleri yapılabilir. 

Politika Yapısı

Politikalar, fonksiyonel farklarına rağmen aynı temel yapıyı paylaşır

Genel Bilgi Paneli

Her politikanın adı, açıklaması aktif olup olmadığı bilgileri ortak alanlarıdır.

Ortak alan alanlar sonrasında politikaya özel konfigürasyon alanları yer alır.

Koşullar (Conditions)

Politikalar, yalnızca belirli koşullar sağlandığında çalışacak şekilde özelleştirilebilir.
Örnek:

  • status parametresi "pending" ise çalış.
  • userId alanı #user1#user2#user3 listesindeyse işlet.

Bu özellik, politikaların dinamik ve bağlama duyarlı şekilde çalışmasını sağlar.

Aşağıdaki görselde, seçilmiş olan politikanın yalnızca "status" parametresinin değeri "pending" ise çalışması istendiği bir örnek koşul görülmektedir

Koşul değer kıyaslama operatörü olarak "listede olsun" veya "listede olmasın" seçeneği seçildiğinde, liste değerlerinin ayrımı için # işareti kullanılmalıdır. Örneğin user1#user2#user3 gibi.

Hata Mesajı Özelleştirme (Error Message Customization)

Politika çalışması sırasında oluşabilecek hatalar için dönen mesajlar özelleştirilebilir. Bu sayede geliştiriciler, istemcilere dönen hata mesajlarını kurumsal veya anlaşılır biçimde özelleştirebilir.

Her politika, hata oluştuğunda dönecek mesajları özelleştirebilir:

AlanAçıklama
HTTP Status CodeVarsayılan sistem kodu
Error CodeVarsayılan hata kodu
Original MessageVarsayılan hata mesajı
Customized HTTP Status CodeFarklı bir HTTP durum kodu döndürülür
Customized Error CodeFarklı hata kodu belirlenir
Customized Error MessageÖzel hata mesajı yazılır

Not: Politika tanımlama arayüzünde o politika özelinde hata kodları ve mesajları özelleştirilebileceği gibi, platform genelinde de hata özelleştirme yapılabilir.

Politikayı Silme

Bir politika artık kullanılmayacaksa veya yanlış yapılandırılmışsa silinebilir. Silme işlemi geri alınamaz, bu nedenle dikkatli olunmalıdır.

Politika yerel politika ise API Proxy veya API Proxy Group içerisinden silinir.

Global politika olması durumunda global politika sayfasındaki;  

  • Listede Satır sonundaki menüsünden Delete seçilerek veya
  • Veya politika detay sayfasında [Delete] butonuna tıklayarak silinebilir.

Ayrıca global politika olması durumunda ve politika hâlihazırda bir veya daha fazla API Proxy/API Proxy Grupta kullanılıyorsa “This policy is currently in use” uyarısı ile birlikte kullanılan referanslar gösterilir, kullanıcının devam isteği ile ilgili referanslar ile beraber politika silinir. Referanslar "redeploy required" durumuna geçer.

Silmek yerine deactivate işlemini de düşünebilirsiniz.

Politikayı Dışa/İçe Aktarma 

Politikalar yedekleme, farklı ortamlara taşıma veya paylaşma amacıyla dışa aktarılabilir (export) ya da daha önce dışa aktarılmış bir politika tekrar içe aktarılabilir (import). Bu işlem, sürüm yönetimi, test ve üretim ortamları arasında geçiş

veya ekipler arası paylaşım süreçlerinde veri bütünlüğünü korumak için kullanılır.

Bölüm / AdımAçıklama ve İşlevler
Dışa Aktarma (Export)

Yerel ise;

API proxy/API Proxy Group içindeki politika detay kısmında [Export] butonuna tıklayın, ZIP dosyası indirilir.

Global ise;

Yöntem 1: Global politikalar sayfasındaki eylem menüsünden ⋮ → Export seçin, ZIP dosyası otomatik indirilir.

Yöntem 2: Politika detay sayfasında [Export] butonuna tıklayın, ZIP dosyası indirilir.

Dosya Formatı

Format: {Date}-policy-{PolicyName}-export.zip

Örnek: 04 Nov 2025-{PolicyName}-export.zip

ZIP İçeriği

- Politika JSON dosyası

- Metadata bilgileri

- Bağımlılık bilgileri (örneğin IP grupları)

Kullanım Alanları

- Yedekleme

- Ortamlar arası taşıma (Test → Prod)

- Versiyonlama

- Ekip veya proje bazlı paylaşım

İçe Aktarma (Import)

- Ana listede [Import {PolicyName}] butonuna tıklayın.

- İndirilen ZIP dosyasını seçin.

- Sistem kontrolleri: Format geçerli mi? İsim çakışması var mı? Bağımlılıklar mevcut mu?- Ardından [Import] butonuna tıklayın.

İçe Aktarma Senaryoları

Senaryo 1: İsim Çakışması → Eski politikanın üzerine yazın veya yeni bir isimle oluşturun.

Senaryo 2: IP Grupları Eksik → Eksik IP gruplarını önce oluşturun veya import sırasında bu grupları çıkarın.


Politikayı API’ye Bağlama

Bu adımda kullanıcı, oluşturduğu politikayı bir veya birden fazla API’ye ilişkilendirir. Politikalar ister global düzeyde (tüm projelerde geçerli), ister local düzeyde (yalnızca belirli bir API için) atanabilir.
Ayrıca birden fazla politika Policy Group altında toplanarak merkezi şekilde yönetilebilir. 

Bölüm / AdımAçıklama ve İşlevler
Global Politika Kullanımı

- Global politikalar, tanımlandıkları anda proje genelinde kullanıma hazırdır. Adımlar;

  1. API düzenleme sayfasına gidin.
  2. Policies sekmesini açın.
  3. Politikalar içinden politikanızı seçin.
  4. API’yi kaydedin.
Local Politika Oluşturma- Sadece belirli bir API’ye özel politika oluşturmak için kullanılır.
  1. Adımlar: API düzenleme sayfasında Policies sekmesini açın.
  2. İlgili politika bölümünde [+ Create Local Policy] butonuna tıklayın
  3. Yalnızca bu API için geçerli politika tanımlayın.
  4. Bu politika diğer API’lerde görünmez.
Politika Grubu Kullanımı (Policy Group)

- Birden fazla politikayı tek bir grup altında toplayarak, aynı anda birden fazla API’ye atayabilirsiniz.Adımlar:

  1. Policy Group oluşturun
  2. İçine ilgili politikaları ekleyin
  3. Policy Group'u API'ye veya API Group'a atayın
  4. Tüm ilişkili politikaları tek noktadan yönetin

Bu işlemlerin nasıl yapıldığına dair daha detaylı bilgi için Mesaj Akışı ve Politika Yönetimi sayfasına bakınız.

En İyi Uygulamalar

  • Politikaları yeniden kullanılabilir olacak şekilde oluşturun
  • Mümkünse global politika tercih edin
  • Hata mesajlarını kullanıcı dostu hâle getirin
  • Politika koşullarını gereksiz yere karmaşıklaştırmayın
  • Değişiklik sonrası redeploy işlemini gerçekleştirin


Mesaj Akışı ve Politika Yönetimi

Politikaların mesaj akışındaki uygulama sırası, API Proxy Group/API Proxy/Endpoint seviyelerindeki çalışma mantığı ve görsel akış diyagramı hakkında detaylı bilgi için Mesaj Akışı ve Politika Yönetimi sayfasına bakınız.