Skip to main content
Bu doküman spesifik bir politikanın detaylı kullanımını anlatır. Eğer Apinizer politika yapısını ilk kez kullanıyorsanız veya politikaların genel çalışma prensiplerini öğrenmek istiyorsanız, öncelikle Politika Nedir? sayfasını okumanızı öneririz.

Genel Bakış

Amacı Nedir?

  • Template ve form tabanlı mesaj oluşturarak değişken değerlerini hedef değişkenlere atamak.
  • İstek veya yanıttaki body, header, query parametresi gibi kaynaklardan veri okuyup yeni değişkenler oluşturmak.
  • JEXL expression’ları ile dinamik içerik üretmek ve birden fazla kaynaktan veri birleştirmek.
  • Satır bazlı koşullu çalıştırma ile sadece belirli durumlarda değişken ataması yapmak.

Çalışma Prensibi

  1. İstek Gelişi: API Gateway’e gelen HTTP/HTTPS isteği için MessageContext oluşturulur.
  2. Politika Kontrolü: Mesaj Oluşturucu politikası aktif ise, sistem aşağıdaki sırayla kontrol yapar:
    • Condition (koşul) tanımlı mı? Varsa koşul sağlanıyor mu?
    • Politika aktif mi (active=true)?
  3. Satır Zinciri Çalıştırma: Satır listesi (Row List) sırasıyla değerlendirilir. Her satır için:
    • Satır koşulu kontrol edilir (varsa).
    • Form modunda: Kaynak değişkenden değer okunur.
    • Template modunda: Şablon #{variable} syntax’ı ile işlenir, JEXL expression’lar evaluate edilir.
    • Sonuç hedef değişkene yazılır.
  4. Boş Değer İşleme:
    • Değer boş ve Zorunlu=true ise hata fırlatılır.
    • Değer boş ise varsayılan değer kullanılır.
  5. Hata İşleme: Hata Durumunda Devam Et aktifse satır atlanır ve sonraki satıra geçilir. Pasifse politika hata ile sonlanır.

Özellikler ve Yetenekler

Temel Özellikler

  • İki Oluşturma Modu: Form modu (basit değişken kopyalama) ve Template modu (JEXL expression desteği ile dinamik içerik oluşturma).
  • Satır Bazlı İşleme: Her satır bağımsız olarak yapılandırılabilir; kaynak, hedef, koşul, varsayılan değer ayrı ayrı belirlenir.
  • Sürükle-Bırak Sıralama: Satır sırası sürükle-bırak ile kolayca değiştirilebilir.
  • Aktif/Pasif Durum Kontrolü: Politikanın aktif veya pasif durumunu kolayca değiştirme. Pasif durumda politika uygulanmaz ancak yapılandırması saklanır.
  • Koşul Bazlı Uygulama: Query Builder ile hem politika seviyesinde hem satır seviyesinde koşullar tanımlanabilir.

İleri Düzey Özellikler

  • JEXL Expression Desteği: Template modunda #{expression} syntax’ı ile matematiksel, mantıksal ve string operatörleri kullanılabilir.
  • Çoklu Değişken Kaynağı: Body (JSON/XML path), Header, Query/Path/Form parametreleri ve Context Variable’lardan veri okunabilir.
  • Satır Seviyesi Hata Yönetimi: Her satır için Hata Durumunda Devam Et ve Zorunlu bayrakları ayrı ayrı ayarlanabilir.
  • Export/Import Özelliği: Politika yapılandırmasını ZIP dosyası olarak export etme. Farklı ortamlara (Development, Test, Production) import etme. Versiyon kontrolü ve yedekleme imkanı.
  • Policy Group ve Proxy Group Desteği: Birden fazla politikayı Policy Group içinde yönetme. Proxy Group’lara toplu politika atama. Merkezi güncelleme ve deploy işlemleri.
  • Deploy ve Versiyonlama: Politika değişikliklerini canlı ortama deploy etme. Hangi API Proxy’lerde kullanıldığını görme (Policy Usage). Proxy Group ve Policy Group kullanım raporları.

Kullanım Senaryoları

Politika Parametrelerini Yapılandırma

Bu bölümde yeni bir Mesaj Oluşturucu politikası oluşturabilir ya da mevcut politika parametrelerini yapılandırarak mesaj oluşturma kurallarını belirleyebilirsiniz. Aşağıdaki görsel Definition sekmesini gösterir: politika durumu, ad ve açıklama alanları; Satırlar (Rows) bölümü ve Add ile eklenen örnek Form satırı (kaynak/hedef değişken, varsayılan değer, zorunlu, hata durumunda devam) ve Template satırı (şablon düzenleyici ve hedef değişken). Üstte Conditions, Error Message Customization, API Proxies Using Policy, API Proxy Groups Using Policy sekmeleri de yer alır. Mesaj Oluşturucu global politika Definition sekmesi, Satırlar ve Ekle menüsünde Form ve Template seçenekleri Form modunda satır düzenleme diyaloğunda kaynak ve hedef değişken, varsayılan değer, zorunlu ve hata durumunda devam alanları gösterilir. Mesaj Oluşturucu satır düzenleme Form modu: Kaynak ve Hedef Değişken, Varsayılan Değer, Zorunlu, Hata Durumunda Devam Et Template modunda şablon alanı (code editor), #{variableName} biçiminde değişken ipucu ve hedef değişken; Hata Durumunda Devam Et seçeneği bulunur. Mesaj Oluşturucu satır düzenleme Template modu: Şablon, Hedef Değişken, Hata Durumunda Devam Et

Yeni Mesaj Oluşturucu Politikası Oluşturma

Yapılandırma Adımları

Koşullar ve Hata Mesajı Özelleştirme panellerinin açıklaması için Politika Nedir? sayfasındaki Koşullar ve Hata Mesajı Özelleştirme (Error Message Customization) bölümlerini inceleyebilirsiniz. Hata mesajı yapılandırmasının tüm katmanları, öncelik sırası ve senaryo örnekleri için Hata Mesajı Yapılandırma Rehberi sayfasına bakın.

Satır Parametreleri

Template Syntax

Template modunda #{...} syntax’ı ile değişkenlere ve JEXL expression’lara erişilir: Basit Değişken Erişimi:
Bölge Belirtmeli Değişken Erişimi (Request/Response):
Özel Değişken Üzerinde Path (JSONPath/XPath):
Bağlam Değişkenleri (Context Variables): JEXL Expression (Tek Satır):
JEXL Script (Çok Satır, Döngü): #{...} bloğu içinde for, while, var, if/else ifadeleri kullanılabilir. Body’den JSONPath ile çekilen array ve object değerleri otomatik olarak liste ve haritaya dönüştürülür; for (item : collection) ile gezinilebilir. Dizi Gezinme:
Toplama / Sayaç:
if/else ile Koşullu Değer:
Saat Dilimi Destekli Tarih Formatlama (dtf yardımcısı): JEXL ifadeleri içinde dtf.format() ile belirli bir saat diliminde tarih formatlanabilir. Varsayılan olarak #{dateTime.formattedText} UTC saati döndürür. Belirli bir saat diliminde almak için:
JEXL Script’te son değerlendirilen ifadenin değeri döndürülür. return anahtar kelimesi kullanılmaz.
Bu politika yalnızca HTTP API Proxy’lerinde kullanılabilir. gRPC API Proxy’lerinde desteklenmez.

Politikayı Silme

Bu politikanın silme adımları ve kullanımdayken uygulanacak işlemler için Politika Yönetimi sayfasındaki Akıştan Politika Kaldırma bölümüne bakabilirsiniz.

Politikayı Dışa/İçe Aktarma

Bu politikanın dışa aktarma (Export) ve içe aktarma (Import) adımları için Export/Import sayfasına bakabilirsiniz.

Politikayı API’ye Bağlama

Bu politikanın API’lere nasıl bağlanacağına ilişkin süreç için Politika Yönetimi sayfasındaki Politikayı API’ye Bağlama bölümüne bakabilirsiniz.

İleri Düzey Özellikler

Best Practices

Yapılması Gerekenler ve En İyi Uygulamalar

Güvenlik En İyi Uygulamaları

Kaçınılması Gerekenler

Performans İpuçları

Sık Sorulan Sorular (SSS)