Değişken Tipleri
Apinizer’da 5 farklı tipte değişken oluşturulur:Başlık (Header)
HTTP başlıklarından değer almak için kullanılır
Parametre (Parameter)
URL parametrelerinden değer almak için kullanılır
Gövde (Body)
Mesaj gövdesinden değer almak için kullanılır
Ortam Değeri (Context Value)
Sistem özelliklerinden değer almak için kullanılır
Özel Değişken (Custom Variable)
Politikalar arası veri taşımak için kullanılır
Apinizer Platformu’nda ilk kurulum ile birlikte hazır değişkenler gelmektedir. Yeni bir proje oluşturulduğunda Yönetim menüsü altındaki değişkenler bölümündeki tüm değişkenler ilgili projeye kopyalanır.Yönetim menüsü altında oluşturulan değişkenler, projelere kopyalanarak kullanıldığından, bu değişkenlerde yapılan güncelleme veya silme işlemleri kullanıldıkları yerlerdeki tanımlamaları etkilemez.Tüm değişkenler “Globalleştir” seçeneği ile Admin sayfasına taşınarak tüm projelerde kullanılabilir hale gelir ve yönetimi Admin kullanıcısına bırakılır.
Başlık (Header) Tipinde Değişken Oluşturma
Bu tipte değişken oluşturmak için **tip ** olarak Başlık seçimi yapılarak ilgili girdi alanları doldurulur. Değişken adı ile başlık adı farklı tanımlanabilir. Adı sistem genelinde tekil olan bir tanımdır. Başlık adı ise istemciden beklenen değerdir.| Alan | Açıklama |
|---|---|
| **Ad ** | Değişken tanımının adının girildiği alandır. |
| **Açıklama ** | Oluşturulan değişken ile ilgili yönetimi kolaylaştırmak için açıklama yazılabilir. |
| **Tipi ** | Değişkenin mesajın hangi bölümde beklendiğinin girildiği alandır. |
| Başlık Adı (Header Name) | İstemciden gelen istekte beklenen başlık adının girildiği alandır. Eğer bu alan çoklu değer içeriyorsa ilk değer kullanılır. |
Başlık değişkenleri HTTP header’larından veri çıkarmak için kullanılır. Örneğin,
X-API-Key, Authorization, Content-Type gibi header’lardan değer alınabilir.Parametre (Parameter) Tipinde Değişken Oluşturma
Bu tipte değişken oluşturmak için **tip ** olarak Parametre seçimi yapılarak ilgili girdi alanları doldurulur. Değişken adı ile parametre adı farklı tanımlanabilir. Adı sistem genelinde tekil olan bir tanımdır. Parametre adı ise istemciden beklenen değerdir.| Alan | Açıklama |
|---|---|
| **Ad ** | Değişken tanımının adının girildiği alandır. |
| **Açıklama ** | Oluşturulan değişken ile ilgili yönetimi kolaylaştırmak için açıklama yazılabilir. |
| **Tipi ** | Değişkenin mesajın hangi bölümde beklendiğinin girildiği alandır. |
| Parametre Tipi (Param Type) | Parametrenin istemciden gelen istek tipinin seçildiği alandır. Varsayılan değeri QUERY’dir. Form parametre değeri olarak okunabilecek değerler; x-www-form değerleri ve attached text data part değerleridir. x-www-form değerlerinde ekleme, silme, düzenleme yapılabilir, text data part kısmı sadece okunabilirdir (read-only), ekleme/düzenleme yapılamaz. Okuma işlemi her yerden yapılabilir. Değerleri ekleme/silme/düzenleme ise sadece istek (request) hattı için geçerlidir. |
| Parametre Adı (Parameter Name) | İstemciden gelen istekte beklenen parametre adının girildiği alandır. Parametre Tipi’nin değeri Query ise ve çoklu değer ise ilk değer kullanılır. |
Parametre değişkenleri URL query parametrelerinden, path parametrelerinden veya form parametrelerinden veri çıkarmak için kullanılır. Örneğin,
?page=1&limit=10 gibi query parametrelerinden veya /users/{id} gibi path parametrelerinden değer alınabilir.Gövde (Body) Tipinde Değişken Oluşturma
Bu tipte değişken oluşturmak için **tip ** olarak Gövde seçimi yapılarak ilgili girdi alanları doldurulur.| Alan | Açıklama |
|---|---|
| **Ad ** | Değişken tanımının adının girildiği alandır. |
| **Açıklama ** | Oluşturulan değişken ile ilgili yönetimi kolaylaştırmak için açıklama yazılabilir. |
| **Tipi ** | Değişkenin mesajın hangi bölümde beklendiğinin girildiği alandır. |
| Mesaj Tipi (Message Type) | Mesaj içeriğinin türünün seçildiği alandır. Varsayılan değeri JSON’dır. |
| JSON/XML Path | İstemciden gelen isteğin değerini almak için gerekli olan JSON/XPath bilgilerinin girildiği alandır. |
Gövde değişkenleri mesaj gövdesinden (body) veri çıkarmak için kullanılır. JSON formatı için JSONPath, XML formatı için XPath kullanılır. Örneğin, JSON içeriğinden
$.user.name gibi bir JSONPath ifadesi ile kullanıcı adı çıkarılabilir.Ortam Değerleri (Context Values) Tipinde Değişken Oluşturma
Bu tipte değişken oluşturmak için **tip ** olarak Ortam Değerleri seçimi yapılarak ilgili girdi alanları doldurulur.| Alan | Açıklama |
|---|---|
| **Ad ** | Değişken tanımının adının girildiği alandır. |
| **Açıklama ** | Oluşturulan değişken ile ilgili yönetimi kolaylaştırmak için açıklama yazılabilir. |
| **Tipi ** | Değişkenin mesajın hangi bölümde beklendiğinin girildiği alandır. |
| Değer (Value) | İstemciden gelen istekte beklenen ön tanımlı değerin seçildiği alandır. Buradaki değerlerden sadece Http Info ve Backend Endpoint düzenlenebilir, diğer değerler yalnızca okunabilirdir (read-only). |
| Zone ID | Değer olarak Date/Time grubundaki değerlerden herhangi biri seçilmişse bu alan aktifleşir. Örnek değer: “+03:00” veya “Europe/Istanbul”. Daha fazlası için Java ZoneId dokümantasyonuna bakabilirsiniz. |
Request Bilgileri
Request Bilgileri
Formda seçilebilen request bilgileri:
- Client IP adresi
- HTTP method
- Content type
- Path bilgisi
- Query string
- Request URI
- Remote user bilgisi
- Server bilgileri (ad, port, vb.)
Tarih/Saat Değerleri
Tarih/Saat Değerleri
Tarih/saat değerleri zaman dilimi (zoneId) gerektirir:
- Epoch milisaniye
- Formatlanmış tarih-saat
- Formatlanmış tarih
- Formatlanmış saat
- Yıl, ay, gün, saat, dakika, saniye bilgileri
Ortam ve API Proxy Bilgileri
Ortam ve API Proxy Bilgileri
- Ortam ID ve adı
- API Proxy Group ID ve adı
- API Proxy ID ve adı
- API Method bilgileri
Mesaj Bilgileri
Mesaj Bilgileri
- Mesaj correlation ID
- İçerik uzunluğu
- Yanıt status kodu
- Compression bilgileri
Ortam değerleri, sistem özelliklerinden ve istek bağlamından (context) veri çıkarmak için kullanılır. Bu değerler form tabanlı yapılandırmada dropdown menüden seçilir ve kullanıcı dostu label’lar ile gösterilir.
Özel Değişken (Custom Variable) Tipinde Değişken Oluşturma
Bu tipte değişken oluşturmak için **tip ** olarak Özel Değişken seçimi yapılarak sadece isim alanı doldurulur. Sonrasında bu değişkenin girilen ismi ile Script ve Business Rule politikalarından değer atamak, değerini okumak, değerini değiştirmek mümkün olur. Daha çok bir politikadan diğerine veri taşınması için kullanılmaktadır.| Alan | Açıklama |
|---|---|
| **Ad ** | Değişken tanımının adının girildiği alandır. |
| **Açıklama ** | Oluşturulan değişken ile ilgili yönetimi kolaylaştırmak için açıklama yazılabilir. |
| **Tipi ** | Değişkenin mesajın hangi bölümde beklendiğinin girildiği alandır. |
| Initialized with Script (Initialized with Script) | Custom Variable’ın başlangıç değerini belirlemek için kullanılan alandır. Bu alan yalnızca değişken hiç oluşturulmamışsa veya null ise çalışır. İlk değer vermek için, burada kullanılan isim ile customVariableMap nesnesine eklenen değişken adı birebir aynı olmalıdır. Örneğin değişken adı “test” ise script içinde en son satırda customVariableMap.put("test",value) şeklinde ifade yazılmalıdır. |
| Script Language | Script Dili seçildiği alandır. |
| Script Body | Script içeriği girildiği alandır. |
Custom Variable özellikle pipeline’lar arası veri taşımak için kullanılır. Script ve Business Rule politikaları ile akış esnasında Custom Variable’a veri eklenebilir, okunabilir ve değiştirilebilir. Bu sayede bir politikadan diğerine veri aktarımı sağlanır.Değişkenler ekranında her zaman ilk değer alınır, başlık (header) ve parametre (parameter) değeri çoklu (multiple) geldiğinde dahi ilk değeri kullanılır. Sadece script politikasında çoklu (multiple) değer var ise # ile ayrılarak kullanılabilir.Log kayıtlarında gösterirken key: val1#val2#val3 şeklinde gösterilir.
Değişken Yönetimi
Proje Bazlı Kullanım
Değişkenler proje bazında tanımlanır ve ilgili projedeki tüm API Proxy’lerde kullanılabilir.
Yönetim Menüsü
Yönetim menüsü altında oluşturulan değişkenler, yeni proje oluşturulduğunda otomatik olarak projeye kopyalanır.
Globalleştirme
Tüm değişkenler “Globalleştir” seçeneği ile Admin sayfasına taşınarak tüm projelerde kullanılabilir hale getirilebilir.
Bağımsız Yönetim
Yönetim menüsündeki değişkenlerin güncellenmesi veya silinmesi, kopyalandıkları projelerdeki tanımları etkilemez.
Değişken Kullanım Senaryoları
Değişkenler şu durumlarda kullanılır:Politika Yapılandırması
Politika ayarlarında dinamik değerler için kullanılır. Rate Limiting, Throttling, API Key gibi politikalar için client tanımlama.
Koşullu Politika Çalıştırma
Değişken değerlerine göre politika çalıştırma kararı vermek için kullanılır.
Routing ve Yönlendirme
Değişken değerlerine göre farklı backend’lere yönlendirme yapmak için kullanılır.
Mesaj İşleme
Mesaj dönüştürme işlemlerinde dinamik değerler için kullanılır.
Script Politikası
Groovy/JavaScript script’lerinde değişken kullanımı ve Custom Variable’lara veri ekleme, okuma ve değiştirme.
Pipeline'lar Arası Veri Taşıma
Custom Variable ile pipeline’lar arası veri aktarımı. Request Pipeline’dan Response Pipeline’a, bir politikadan diğerine veri taşıma.

