Variable Nedir?
Variable (değişken), API istekleri sırasında dinamik değerler kullanmanızı sağlayan bir sistemdir. Apinizer’da variable kavramı iki farklı aşamada karşınıza çıkar:1. Variable Tanımı (Definition)
Variable dokümanında anlatılan, Project > Variables bölümünde oluşturduğunuz variable tanımlarıdır. Bu tanımlar, değişkenin nasıl oluşturulacağını ve nereden değer alacağını belirler. Variable Tanımı Türleri:- Header (Başlık): HTTP header’larından değer alır
- Parameter (Parametre): URL parametrelerinden değer alır
- Body (Gövde): Mesaj gövdesinden değer alır
- Context Value (Ortam Değeri): Sistem özelliklerinden değer alır
- Custom Variable (Özel Değişken): Script ile değer atanır
2. Runtime Variable Kullanımı
Bu sayfada anlatılan, runtime’da#{variableName} formatında kullanılan değişkenlerdir. Bu değişkenler iki kategoriye ayrılır:
Context Variable
Sistem tarafından otomatik oluşturulan değişkenler. Her istek için hazırdır ve direkt kullanılabilir.
Global Variable
Variable tanımı ile oluşturulan ve script ile değer atanan değişkenler. Policy’ler arasında veri aktarımı için kullanılır.
Önemli: Variable tanımı oluşturmak ile runtime’da variable kullanmak farklı şeylerdir. Variable tanımı, değişkenin nasıl oluşturulacağını belirler. Runtime kullanımı ise, oluşturulan değişkenin
#{variableName} formatında kullanılmasıdır.Variable Tanımı vs Runtime Variable Kullanımı
| Özellik | Variable Tanımı | Runtime Variable Kullanımı |
|---|---|---|
| Ne Zaman | Proje yapılandırması aşamasında | İstek işlenirken (runtime) |
| Nerede | Project > Variables | Policy ayarları, routing, header’lar vb. |
| Format | Form tabanlı tanım | #{variableName} formatında kullanım |
| Amaç | Değişkenin nasıl oluşturulacağını tanımlamak | Dinamik değerleri kullanmak |
| Örnek | ”userId” adında Custom Variable tanımı oluşturma | #{userId} şeklinde kullanma |
Variable tanımları hakkında detaylı bilgi için Variable sayfasına bakabilirsiniz. Bu sayfa, runtime’da variable’ların nasıl kullanılacağını anlatmaktadır.
İki Tür Runtime Variable: Context ve Global
Apinizer’da runtime’da kullanabileceğiniz iki tür variable vardır:Context Variable
Sistem tarafından otomatik oluşturulan değişkenler. Her istek için hazırdır ve direkt kullanılabilir.
Global Variable
Variable tanımı ile oluşturulan ve script ile değer atanan değişkenler. Policy’ler arasında veri aktarımı için kullanılır.
Context Variable Nedir?
Context variable’lar, sistem tarafından otomatik olarak oluşturulan ve her istek için hazır olan runtime değişkenlerdir. Bu değişkenler:- Variable tanımı gerektirmez - Hiçbir tanım yapmanıza gerek yoktur
- İstek başladığında otomatik oluşturulur
- Sistem tarafından otomatik değer atanır
- Direkt
#{variableName}formatında kullanılabilir - İstek bilgileri, tarih/saat, hata bilgileri gibi sistem verilerini içerir
#{request.method}, #{dateTime.year}, #{message.correlationId}, #{error.message}, #{apiProxy.name}
Context variable’lar, Variable dokümanında anlatılan “Context Value” tipindeki variable tanımlarından farklıdır. Context Value tipindeki variable tanımları, form tabanlı yapılandırmada dropdown menüden sistem özelliklerini seçmenizi sağlar ve runtime’da
#{variableName} formatında kullanılır. Context variable’lar ise runtime’da otomatik oluşturulan ve direkt #{request.method} gibi kullanılabilen değişkenlerdir (variable tanımı gerekmez).Global Variable Nedir?
Global variable’lar, Variable tanımı ile oluşturulan ve script politikaları ile değer atanan runtime değişkenlerdir. Bu değişkenler:- Variable tanımı gerektirir - Önce Project > Variables’da “Custom Variable” tipinde tanım oluşturulur
- Script politikası ile runtime’da değer atanır
- Policy’ler arasında veri aktarımı için kullanılır
- İhtiyacınıza göre özelleştirilebilir
#{userId}, #{tenantId}, #{customValue}
Global variable’lar, Variable dokümanında anlatılan “Custom Variable” tipindeki variable tanımlarından oluşturulur. Variable tanımı oluşturduktan sonra, script politikası ile
customVariableMap.put("variableName", "value") şeklinde değer atayarak runtime’da kullanabilirsiniz.Farklar Nelerdir?
| Özellik | Context Variable | Global Variable |
|---|---|---|
| Variable Tanımı | Gerekmez - Sistem otomatik oluşturur | Gerekir - Custom Variable tipinde tanım oluşturulur |
| Değer Atama | Sistem otomatik atar | Script ile değer atarsınız (customVariableMap.put()) |
| Kullanım Hazırlığı | Her zaman hazırdır | Önce Variable tanımı, sonra script ile değer atama gerekir |
| Kapsam | İstek bağlamı (request context) | İstek bağlamı (request context) |
| Kullanım Amacı | Sistem bilgilerine erişim | Policy’ler arası veri aktarımı |
| Örnekler | #{request.method}, #{dateTime.year}, #{error.message} | #{userId}, #{tenantId} |
Her iki tür de aynı şekilde kullanılır:
#{variableName} formatında. Sistem otomatik olarak hangi değişkenin nereden geldiğini bilir ve çözümler.Variable Tanımı Türleri ve Runtime Kullanımı
Variable dokümanında anlatılan 5 tip variable tanımının runtime kullanımı:| Variable Tanımı Türü | Runtime Kullanımı | Açıklama |
|---|---|---|
| Header | #{variableName} | Variable tanımı oluşturduktan sonra, header’dan alınan değer #{variableName} formatında kullanılır |
| Parameter | #{variableName} | Variable tanımı oluşturduktan sonra, parametreden alınan değer #{variableName} formatında kullanılır |
| Body | #{variableName} | Variable tanımı oluşturduktan sonra, body’den alınan değer #{variableName} formatında kullanılır |
| Context Value | #{variableName} | Variable tanımı oluşturduktan sonra, seçilen sistem özelliğinden alınan değer #{variableName} formatında kullanılır |
| Custom Variable | #{variableName} | Variable tanımı oluşturduktan sonra, script ile değer atanır ve #{variableName} formatında kullanılır (Global Variable) |
Context Variable’lar
Ne Zaman Kullanılır?
Context variable’lar, sistem tarafından otomatik oluşturulur ve her zaman kullanılabilir. İstek bilgileri, tarih/saat veya hata bilgilerine ihtiyacınız olduğunda kullanın.Runtime Kullanımı (# formatında)
Context variable’lar runtime’da#{category.property} formatında kullanılır. Örnek: #{request.method}, #{dateTime.year}, #{message.correlationId}
Script İçinde Kullanımı
Script politikaları içinde context variable’lar farklı bir formatta kullanılır. Script’te alt çizgi (_) ile ayrılmış format kullanılır:
- Runtime:
#{request.method}→ Script:request_httpMethod - Runtime:
#{dateTime.year}→ Script:dateTime_year - Runtime:
#{message.correlationId}→ Script:message_correlationId
Kullanılabilir Context Variable’lar
Request (İstek) Değişkenleri
İstek ile ilgili bilgiler:| Runtime Format | Script Format | Ne İşe Yarar | Örnek Değer |
|---|---|---|---|
#{request.method} | request_httpMethod | HTTP metodu | GET, POST, PUT |
#{request.uri} | request_requestURI | Tam istek URI’si | /api/users/123 |
#{request.contentType} | request_contentType | İçerik tipi | application/json |
#{request.remoteAddress} | request_remoteAddress | İstemci IP adresi | 192.168.1.100 |
#{request.queryString} | request_queryString | Query parametreleri | ?id=123&name=test |
#{request.pathInfo} | request_pathInfo | Path bilgisi | /api/users |
#{request.contextPath} | request_contextPath | Context path | /apinizer |
DateTime (Tarih/Saat) Değişkenleri
Tarih ve saat bilgileri:| Runtime Format | Script Format | Ne İşe Yarar | Örnek Değer |
|---|---|---|---|
#{dateTime.year} | dateTime_year | Yıl | 2026 |
#{dateTime.month} | dateTime_month | Ay (1-12) | 2 |
#{dateTime.dayOfMonth} | dateTime_dayOfMonth | Gün (1-31) | 4 |
#{dateTime.dayOfWeek} | dateTime_dayOfWeek | Haftanın günü (1=Pazartesi, 7=Pazar) | 3 |
#{dateTime.hour} | dateTime_hour | Saat (0-23) | 14 |
#{dateTime.minute} | dateTime_minute | Dakika (0-59) | 30 |
#{dateTime.second} | dateTime_second | Saniye (0-59) | 45 |
#{dateTime.timestamp} | dateTime_epochMillis | Unix timestamp (milisaniye) | 1707058245000 |
#{dateTime.formattedText} | dateTime_formattedText | Formatlanmış tarih/saat | 2026-02-04T14:30:45.000Z |
#{date.formattedText} | date_formattedText | Formatlanmış tarih | 2026-02-04 |
#{time.formattedText} | time_formattedText | Formatlanmış saat | 14:30:45 |
Message (Mesaj) Değişkenleri
İstek mesajı ile ilgili bilgiler:| Runtime Format | Script Format | Ne İşe Yarar | Örnek Değer |
|---|---|---|---|
#{message.correlationId} | message_correlationId | Benzersiz istek ID’si | abc123-def456-ghi789 |
API Proxy veya Proxy Group üzerinde tanımlanan özel message variable’lar da burada görüntülenir.
API Değişkenleri
API Proxy bilgileri:| Runtime Format | Script Format | Ne İşe Yarar | Örnek Değer |
|---|---|---|---|
#{apiProxy.id} | apiProxy_id | API Proxy ID’si | api-proxy-123 |
#{apiProxy.name} | apiProxy_name | API Proxy adı | User Management API |
Error (Hata) Değişkenleri
Hata durumlarında kullanılabilen değişkenler:| Runtime Format | Script Format | Ne İşe Yarar | Örnek Değer |
|---|---|---|---|
#{error.errorCode} | error_errorCode | Hata kodu | AUTH_FAILED |
#{error.message} | error_message | Hata mesajı | Authentication failed |
#{error.httpStatusCode} | error_httpStatusCode | HTTP durum kodu | 401 |
#{error.originalMessage} | error_originalMessage | Orijinal hata mesajı | Invalid credentials |
#{error.customizedErrorCode} | error_customizedErrorCode | Özelleştirilmiş hata kodu | CUSTOM_001 |
#{error.customizedHttpCode} | error_customizedHttpCode | Özelleştirilmiş HTTP kodu | 400 |
#{error.customizedMessage} | error_customizedMessage | Özelleştirilmiş mesaj | Lütfen tekrar deneyin |
#{error.defaultErrorCode} | error_defaultErrorCode | Varsayılan hata kodu | DEFAULT_001 |
#{error.defaultMessage} | error_defaultMessage | Varsayılan mesaj | Bir hata oluştu |
#{error.defaultHttpCode} | error_defaultHttpCode | Varsayılan HTTP kodu | 500 |
Context Variable’lar Ne Zaman Oluşturulur?
- Request değişkenleri: İstek başladığında otomatik oluşturulur
- DateTime değişkenleri: İstek başladığında oluşturulur (o anki tarih/saat)
- Message değişkenleri: İstek başladığında oluşturulur
- API değişkenleri: API Proxy yüklendikten sonra oluşturulur
- Error değişkenleri: Hata oluştuğunda otomatik oluşturulur
Global Variable Oluşturma ve Kullanımı
Ne Zaman Global Variable Kullanılır?
Global variable kullanmanız gereken durumlar:- Request body’den veri çıkarıp başka yerde kullanmak istediğinizde
- Policy’ler arasında veri aktarımı yapmak istediğinizde
- Hesaplanmış değerleri saklamak istediğinizde
- Authentication sonrası kullanıcı bilgilerini saklamak istediğinizde
Adım Adım Kılavuz
Variable Tanımı Oluşturun
Project > Variables bölümüne gidin ve yeni bir Variable oluşturun. Type olarak Custom Variable seçin.
Variable tanımları hakkında detaylı bilgi için Variable sayfasına bakabilirsiniz.
Variable Tanımında Initialize with Script Kullanımı
Variable tanımında Initialize with Script özelliğini kullanarak, global variable’ın başlangıç değerini otomatik olarak belirleyebilirsiniz: Variable Tanımı Ayarları:- Name: Variable adı (örn:
apiKey) - Type:
Custom Variableseçin - Initialize with Script: Aktif edin
- Script Language:
GroovyveyaJavaScriptseçin - Script Body: Variable’ı initialize edecek script’i yazın
Kullanım Örnekleri
Örnek 1: Hata Mesajlarında Variable Kullanımı
Amaç: Hata mesajlarını dinamik ve bilgilendirici hale getirmek. Hata Mesajı Şablonu:Örnek 2: Backend Routing’te Global Variable Kullanımı
Amaç: Backend URL’lerini dinamik hale getirmek. Backend URL:Örnek 3: Response Header’larında Variable Kullanımı
Amaç: Response header’larına istek bilgilerini eklemek. Header Ayarları:Örnek 4: Log Mesajlarında Variable Kullanımı
Amaç: Detaylı log mesajları oluşturmak. Log Mesajı:Sık Karşılaşılan Sorunlar ve Çözümleri
Sorun 1: Variable Bulunamıyor
Belirtiler:- Variable boş string (
"") olarak çözümleniyor - Log’da “Context variable ‘xxx’ not found” uyarısı var
- Variable henüz oluşturulmamış (policy sırası sorunu)
- Variable ismi yanlış yazılmış
- Script çalışmamış veya hata vermiş
Sorun 2: Variable Değeri Yanlış
Belirtiler:- Variable çözümleniyor ama yanlış değer gösteriyor
- Eski değer gösteriliyor
- Variable override edilmiş
- Script birden fazla kez çalışmış
- Yanlış policy’de variable oluşturulmuş
Sorun 3: Script Çalışmıyor
Belirtiler:- Variable oluşturulmuyor
- Script hata veriyor
İpuçları ve En İyi Uygulamalar
1. İsimlendirme Kuralları
İyi İsimler:- Açıklayıcı ve anlamlı isimler kullanın
- camelCase kullanın (örn:
userId,userEmail) - Context variable isimleriyle çakışmayın
- Kısa ama açıklayıcı isimler tercih edin
2. Null ve Empty Kontrolü
Güvenli Kullanım:3. Güvenlik
Güvenli:4. Hata Yönetimi
İyi Hata Yönetimi:5. UI’da Context Variable Kullanımı
Birçok policy ve ayar ekranında Context Variable Dialog butonu bulunur:Context Variable Dialog'u Açın
Policy veya ayar ekranında “Variable” butonuna tıklayın (breadcrumb’ta veya alan yanında).
- Error Variables (10 adet)
- Request Variables (7 adet)
- Message Variables (Dinamik)
- API Variables (2 adet)
- DateTime Variables (8 adet)
Özet
Hızlı Referans
Context Variable Runtime Kullanımı:Önemli Notlar:
- Variable bulunamazsa boş string döner
- Policy sırası önemlidir (önce oluştur, sonra kullan)
- Context variable’lar otomatik oluşturulur, global variable’lar için önce Variable tanımı gerekir
- Runtime’da
#{category.property}formatı kullanılır, script’tecategory_propertyformatı kullanılır

