Bu bölümde politikaların genel özellikleri anlatılmaktadır. Herhangi bir politikaya ve konfigürasyonunun nasıl yapılacağına ilişkin detaylı bilgi için ilgili politikanın kendi sayfasına bakılabilir.

API’ye gelen ya da API’den dönen mesajlar için güvenlik, performans iyileştirme ve kullanım kolaylığı sağlama gibi amaçlarla bir takım kurallar, kısıtlamalar ve dönüşümler tanımlamak için kullanılan varlıklar genel olarak politika olarak adlandırılır.

Politika, kod geliştirmeye ihtiyaç duymadan API davranışının 'programlanmasını' sağlar. API'ler için ortak yönetim gereksinimlerini kolay ve güvenilir bir şekilde karşılamak için tasarlanmıştır.

Güvenlik, hız sınırlama, dönüşüm ve aracılık yetenekleri gibi özellikler sunar ve bu işlevler için kod yazılması ve bakım/idamesinin yapılması yükünden kurtarır. Her bir politika, belirli bir fonksiyonu uygulayan ve davranışı konfigürasyonla özelleştirilebilen ayrı bir modül gibi çalışır.

Politika Türleri

Apinizer Platformunda sunulan politikalar, işlevsel açıdan kabaca aşağıdaki şekilde gruplanabilir: 

Güvenlik (Security) Politikaları 

Erişim Denetimi (Access Control) Politikaları

Veri İşleme (Data Manipulation) Politikaları

Tehdit Koruması (Threat Protection) Politikaları

Diğer Politikalar

Politika Uygulama Noktaları

Politikalar üç farklı noktada uygulanabilir.

  1. API Proxy Grupları: Bir API Proxy Grup üzerinde bir politika uygulandığı zaman, o gruptaki bütün API Proxy'ler için bu politika işletilir. 
  2. API Proxy: Bir API Proxy üzerinde bir politika uygulandığı zaman, o API Proxy'nin bütün metot/endpoint'leri için bu politika işletilir.
  3. Metot/Endpoint: Bir metot/endpoint üzerinde uygulanan politika, yalnızca o metot/endpoint için işletilir, diğer metot/endpoint'leri etkilemez.

Farklı noktalara politikaların uygulanması ve bu politikaların işletilme sırasına ilişkin detaylı bilgi için Geliştirme Sekmesi bölümüne bakılabilir.

Politika Kullanım Tipleri

Politikalar yerel (local) ya da genel (global) olabilir.

Yerel Politika

Bir yerel politika, yalnızca eklenmek istendiği API Proxy'nin Geliştirme Sekmesi üzerinde oluşturulabilir ve sadece bu API Proxy tarafından kullanılabilir, API Proxy silindiğinde onunla birlikte silinir. 

Global Politika

Global politikalar API Proxy'lerden bağımsız olarak Global Politikalar arayüzlerinden ya da bir API Proxy'nin Geliştirme Sekmesi içinden oluşturulabilir. Bir global politika sıfır ya da daha fazla API Proxy tarafından kullanılabilir. Bir API Proxy silindiğinde, o API Proxy tarafından kullanılan global politikalar bundan etkilenmez. Bununla birlikte, global politikada yapılan herhangi bir güncelleme, o politikayı kullanan bütün API Proxy'leri etkiler.

Politika Yapısı

Politikalar, tanımlı oldukları özel işlev açısından farklılaşan konfigürasyon bilgileri dışında yapısal olarak aynıdırlar ve bir takım ortak veri alanları içerirler.

Ortak Veri Alanları

Bütün politikalar için ortak olan bu veri alanları aşağıdaki tabloda görülmektedir.

AlanAçıklama
AdYerel politikalar için ihtiyaç duyulmadığından arayüzde görünmez. Ancak global politikalar için zorunlu alandır ve politika seçimlerinde kullanıcının aradığı politikayı bulabilmesi için kullanılır. Bir Proje içerisinde biricik (unique) olmalıdır.
AçıklamaOluşturulan politika ile ilgili kısa açıklama bilgisidir. Girilmesi isteğe bağlıdır. Özellikle global politikalar için girilmesinde fayda vardır.

Koşullar

(Conditions)

Bazen eklenen bir politikanın işletilmesine örneğin bir parametrenin varlığına ya da bir başlığın (header) değerine bakılarak karar verilmesi istenebilir. Apinizer, kullanıcıların bu gibi gereksinimleri ifade edebilmeleri için bütün politikalar için Koşullar bölümünü sunar. VE (AND), VEYA (OR), DEĞİL (NOT) gibi mantıksal işleçler de kullanılarak koşullar tanımlanabilir. Politika işletilmeden önce koşullar sınanır ve eğer koşullar sağlanmazsa o politika işletilmez.

Hata Mesajı Özelleştirme

(Error Message Customization)

Herhangi bir politika işletilirken çeşitli nedenlerden dolayı istemciye bir hata mesajı döndürülebilir. Hatanın nedenine bağlı olarak her politika için Apinizer tarafından önceden tanımlanmış hazır hata kodları ve mesajları bulunur. Kullanıcılar bu hata kodlarını ya da mesajlarını herhangi bir politika için özelleştirebilirler.
AktifPolitikanın aktiflik durumunu gösterir. Politikalar varsayılan olarak Aktif değeri ile oluşturulurlar. Ancak herhangi bir nedenle bu alanın değeri Pasif yapılarak geçici olarak devre dışı bırakılabilirler. 

Koşul Tanımlama

Politikaya belirli koşullar eklenerek sadece tanımlanan koşullar sağlandığı durumlarda çalışması sağlanır. Aşağıdaki görselde, seçilmiş olan politikaya uygulanabilecek koşullar gösterilmiştir:

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)

Hata mesajındaki HTTP Durum Kodu, Hata Kodu ve Hata Mesajı alanları özelleştirilebilir. 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.

Hata Mesajını Özelleştirme alanları aşağıdaki tabloda görülmektedir.

AlanAçıklama

HTTP Durum Kodu

(HTTP Status Code)

Varsayılan HTTP durum kodudur. Varsayılan değeri, Sistem Ayarları → Hata Mesajları ekranı üzerinden atanmaktadır. 

Hata Kodu

(Error Code)

Varsayılan hata kodudur. Varsayılan değeri, Sistem Ayarları → Hata Mesajları ekranı üzerinden atanmaktadır. 

Orijinal Mesaj

(Original Message)

Varsayılan hata mesajıdır. Varsayılan değeri, Sistem Ayarları → Hata Mesajları Mesajları ekranı üzerinden atanmaktadır. 

Özelleştirilmiş HTTP Durum Kodu

(Customized HTTP Status Code)

Varsayılandan farklı olarak döndürülecek HTTP durum kodudur.

Özelleştirilmiş Hata Kodu

(Customized Error Code)

Varsayılandan farklı olarak döndürülecek hata kodudur.

Özelleştirilmiş Hata Mesajı

(Customized Error Message)

Varsayılandan farklı olarak döndürülecek hata mesajıdır.