Skip to main content

Genel Bakış

Apinizer’da politika ayarları, bağlantı konfigürasyonları ve routing adresleri gibi birçok string alanda dinamik değişkenler kullanılabilir. Bu sayede sabit değerler yerine ortama, isteğe veya çalışma zamanına göre değişen değerler tanımlanabilir. İki tür dinamik değişken vardır:

Environment Variable — ${key}

Ortam değişkenleri, deploy anında çözümlenir. Geliştirme, test ve üretim gibi ortamlara göre farklı değerler alabilir.

Context Variable — #{key}

Bağlam değişkenleri, her istekte çözümlenir. İstek bilgileri, tarih/saat gibi sistem verileri veya script ile atanan özel değerler içerir.

İki Değişken Türü

Environment Variable (${key})

Environment Variable’lar, farklı ortamlarda (geliştirme, test, üretim) farklı değerler kullanmanızı sağlar. Deploy anında çözümlenir ve çalışma zamanında sabit kalır. Örnek: ${api.hostname} → Geliştirmede localhost:8080, üretimde api.example.com
Environment Variable tanımlama ve yönetim hakkında detaylı bilgi için Environment Variable sayfasına bakabilirsiniz. CRUD işlemleri ve kullanım senaryoları için Environment Variable Yönetimi sayfasını inceleyebilirsiniz.

Context Variable (#{key})

Context Variable’lar her istekte çözümlenir ve iki alt kategoriden oluşur: 1. Sistem Context Variable’ları — Otomatik oluşturulur, tanım gerektirmez:
  • #{context.request.httpMethod}, #{context.request.uri}, #{context.request.remoteAddress}
  • #{context.system.year}, #{context.system.dateTime}
  • #{context.message.correlationId}
  • #{context.apiProxy.name}, #{context.apiProxy.id}
  • #{context.credential.clientId}, #{context.credential.username}
  • #{error.defaultErrorCode}, #{error.defaultMessage}
2. Global Variable’lar — Script ile oluşturulur, Custom Variable tanımı gerekir:
  • #{userId}, #{tenantId}, #{customValue}
  • Script politikasında customVariableMap.put("key", "value") ile değer atanır
Variable tanımları hakkında detaylı bilgi için Değişkenler sayfasına bakabilirsiniz.

Karışık Kullanım

İki tür aynı anda kullanılabilir:
${api.hostname} deploy anında çözümlenir (örn: api.example.com), #{userId} her istekte farklı değer alır.

Desteklenen Alanlar

Dinamik değişkenler, politika ve bağlantı ayarlarında neredeyse tüm string alanlarda kullanılabilir.

Politikalar

Script politikası bu tabloda yer almaz. Script politikasında #{key} placeholder mekanizması kullanılmaz çünkü değişkenlere zaten customVariableMap nesnesi ve request_httpMethod, dateTime_year gibi binding’ler üzerinden doğrudan erişim sağlanır. Detaylar için Script’te Kullanım Farkı bölümüne bakınız.

Bağlantılar

Diğer Alanlar

Bağlantı ayarlarında (Database, LDAP, Email) genellikle ${key} (Environment Variable) kullanılır çünkü bu değerler ortam bazlıdır ve deploy anında çözümlenmelidir. #{key} (Context Variable) ise istek zamanında çözümlenir ve daha çok politika ayarlarında ve routing adreslerinde kullanılır.

UI’da Değişken Seçimi

Politika ve bağlantı düzenleme ekranlarında, breadcrumb alanında “Değişken” butonu bulunur. Bu butona tıklandığında açılan menüden iki diyaloğa erişilebilir:

Environment Variable Diyaloğu

Menüden “Environment Variable” seçildiğinde açılan diyalog, tanımlanmış tüm ortam değişkenlerini listeler:
  • Global Değişkenler — Tüm ortamlarda geçerli olan değişkenler
  • Ortama Özel Değişkenler — Belirli ortamlar için tanımlanmış değişkenler
Değişkene tıklandığında ${variableName} formatında panoya kopyalanır ve ilgili alana yapıştırılabilir.

Context Variable Diyaloğu

Menüden “Context Variable” seçildiğinde açılan diyalog, kullanılabilir tüm bağlam değişkenlerini kategorize ederek listeler:
  • Error Variables — Hata bilgileri
  • Request Variables — İstek bilgileri
  • Message Variables — Mesaj bilgileri
  • API Variables — API Proxy bilgileri
  • Credential Variables — Kimlik bilgileri
  • DateTime Variables — Tarih/saat bilgileri
Değişkene tıklandığında #{variableName} formatında panoya kopyalanır.
Her iki diyalog da bağımsızdır. Aynı alanda hem ${key} hem #{key} kullanabilirsiniz.

Context Variable Referansı

Request (İstek)

DateTime (Tarih/Saat)

Message (Mesaj)

API Proxy veya Proxy Group üzerinde tanımlanan özel message variable’lar da bu kategoride görüntülenir.

API

Credential (Kimlik)

Error (Hata)

Script’te Kullanım Farkı

Context variable’lar script politikası içinde farklı formatta kullanılır. Runtime’da nokta (.) ile ayrılan format, script’te alt çizgi (_) ile yazılır:

Global Variable Kullanımı

Global variable’lar, Custom Variable tanımı ile oluşturulan ve script ile değer atanan değişkenlerdir. Politikalar arasında veri aktarımı için kullanılır.
1

Variable Tanımı Oluşturun

Project > Variables bölümünden Custom Variable tipinde yeni bir tanım oluşturun.
2

Script ile Değer Atayın

Script politikası içinde customVariableMap.put("variableName", "value") ile değer atayın.
3

Değişkeni Kullanın

#{variableName} formatında diğer politika ve ayarlarda kullanın.
Script Örneği:
Global variable’lar script politikası çalıştıktan sonra kullanılabilir. Değişkeni kullanan politika, değer atayan script politikasından sonra çalışmalıdır (policy sırası önemlidir).

Kullanım Örnekleri

Hata Yanıt Şablonu

Dinamik Routing

${api.hostname} deploy anında, #{tenantId} ve #{context.request.pathInfo} her istekte çözümlenir.

Response Header Ekleme

Davranış Kuralları

  • Bulunamayan #{key} değerleri boş string ("") ile değiştirilir; hata fırlatılmaz, uyarı log’u yazılır
  • Bulunamayan ${key} değerleri çözümlenemez ve olduğu gibi kalır
  • Script politikasında custom variable map’e doğrudan erişim olduğu için #{...} placeholder mekanizması kullanılmaz
  • Variable isimleri büyük/küçük harf duyarsızdır

Sonraki Adımlar

Environment Variable

Ortam değişkenlerini detaylı öğrenin

Değişkenler

Variable tanımlarını öğrenin

Script Politikası

Script ile değişken kullanımı

Environment Variable Yönetimi

Environment Variable CRUD işlemleri