Ana içeriğe atla
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?

  • API Proxy (API Vekil Sunucusu) üzerinden gelen isteklerde zorunlu içerik taşınmasını sağlayarak boş veya hatalı gövdeleri engeller.
  • Minimum veri boyutu güvence altına alınarak iş kurallarının ihlal edilmesi daha istek girişinde durdurulur.
  • Eksik payload nedeniyle backend servislerinde oluşabilecek hataları ve gereksiz kaynak tüketimini azaltır.
  • Hata mesajı özelleştirmesiyle istemcilerin minimum gereksinimi hızla anlamasına yardımcı olur.
  • Koşul bazlı kullanım sayesinde sadece hassas endpoint’lerde veya belirli istemci segmentlerinde aktif edilir.

Çalışma Prensibi

  1. İstek Gelişi: API Gateway’e gelen her HTTP/HTTPS isteği için, istemin kaynak IP adresi tespit edilir.
  2. Politika Kontrolü: Minimum Mesaj Boyutu 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)?
    • Variable kullanılıyor mu yoksa Apinizer default mı?
  3. Payload Doğrulaması: İstek gövdesi string’e dönüştürülür, ölçülen byte/karakter uzunluğu tanımlanan size değeri ile karşılaştırılır.
  4. Karar Verme:
    • Eşleşme Var: Gövde uzunluğu size değerinden büyükse istek normal akışta devam eder.
    • Eşleşme Yok: Gövde boş ya da size değerine eşit/altında ise istek durdurulur ve hata mesajı tetiklenir. Varsayılan hata ERR-026 ve 403 Forbidden’dır.
  5. Hata İşleme: Politika kuralına uymayan istekler için özelleştirilebilir HTTP durum kodu ve hata mesajı döndürülür.

Özellikler ve Yetenekler

Temel Özellikler

  • Boş Gövde Engelleme: İstek gövdesi bulunmayan veya beklenen eşiğin altındaki payload’ları otomatik olarak reddeder.
  • Minimum Byte Eşiği Doğrulaması: size alanı ile tanımlanan en düşük veri boyutunu uygulayarak veri bütünlüğü sağlar.
  • gRPC Uyumlu Çalışma: availableForGrpc() desteği sayesinde HTTP ve gRPC mesajlarını aynı kuralla doğrular.
  • Aktif/Pasif Durum Kontrolü: Politikanın aktif veya pasif durumunu kolayca değiştirme (active/passive toggle). Pasif durumda politika uygulanmaz ancak yapılandırması saklanır.
  • Koşul Bazlı Uygulama: Query Builder ile karmaşık koşullar oluşturarak politikanın ne zaman uygulanacağını belirleme (örn: sadece belirli endpoint’lere veya header değerlerine göre).

İleri Düzey Özellikler

  • Koşula Göre Minimum Eşik: Path, method veya header bilgilerine göre farklı minimum boyut politikaları tanımlamaya imkan tanır.
  • Hata Mesajı Versiyonlama: EnumParentErrorType.POLICY_MINMESSAGESIZE tabanlı hata mesajları çok dilli ve format uyumlu şekilde yönetilir.
  • Kullanım İzleme Entegrasyonu: Policy usage sekmeleriyle politikayı kullanan API Proxy ve grupları merkezi olarak izlenir.
  • 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ı

SenaryoDurumÇözüm (Politika Uygulaması)Beklenen Davranış / Sonuç
Boş POST Gövdelerini EngellemeBazı istemciler POST çağrılarını gövdesiz gönderiyorsize = 1 belirleGövdesiz POST istekleri 403 ERR-026 ile reddedilir
Zorunlu Alan KontrolüJSON kullanıcı kayıtlarında minimum veri olmalısize = 256 tanımla256 byte altındaki JSON istekleri bloklanır, eksik veri tespit edilir
gRPC Mesaj DoğrulamasıgRPC hizmeti boş payload aldığında hata veriyorPolitika gRPC’de aktif, size = 512Çok küçük gRPC mesajları gateway’de durdurulur
Webhook SağlamaDış sağlayıcı ara sıra boş webhook gönderiyorQuery Builder’da endpoint koşulu + size = 128Sadece hedef webhook rotasında minimum 128 byte şartı uygulanır
Sahte Trafik FiltrelemeBot’lar 0 byte isteklerle sistemi yokluyorPolitika global, size = 64Bot trafiği 403 dönüşü alır, log’da kayıt altına alınır
Dosya Metadata KontrolüDosya yüklenirken metadata gövdesi boş geliyorMultipart metadata endpoint’inde size = 1024Zorunlu metadata alanı olmayan yüklemeler reddedilir
PII Tutarlılığı (opsiyonel)Kişisel veri içermeyen boş kayıtlar log’a düşüyorPolicy Group içinde size = 512Politikayla eşleşmeyen istekler bloklanır, raporlama tutarlılığı sağlanır

Politika Parametrelerini Yapılandırma

Bu adımda, kullanıcı yeni bir politika oluşturabilir ya da mevcut politika parametrelerini yapılandırarak erişim kurallarını belirleyebilir. Tanımlanan parametreler, politikanın çalışma şeklini (örneğin hangi IP’lerin izinli olacağı, coğrafi kısıtlamalar, koşullu aktivasyonlar vb.) doğrudan etkiler. Bu sayede politika hem kuruma özel gereksinimlere göre özelleştirilebilir hem de merkezi olarak yönetilebilir.

Yeni Minimum Mesaj Boyutu Politikası Oluşturma

Minimum Mesaj Boyutu Politikası

Yapılandırma Adımları

AdımAçıklama / İşlem
Adım 1: Oluşturma Sayfasına Gitme- Sol menüden Development → Global Settings → Global Policies → Minimum Mesaj Boyutu bölümüne gidin.
- Sağ üstteki [+ Create] butonuna tıklayın.
Adım 2: Temel Bilgileri GirmePolicy Status (Politika Durumu): Aktif/Pasif durumu gösterir. Yeni politikalar varsayılan olarak aktiftir.

Name (İsim) Zorunlu: Örnek: Production_MinPayload
- Benzersiz isim girin, boşlukla başlamaz.
- Sistem otomatik kontrol eder. Yeşil tik: kullanılabilir. Kırmızı çarpı: mevcut isim.

Description (Açıklama): Örnek: “Boş JSON POST isteklerini engelle.”
- Maks. 1000 karakter.
- Politikanın amacını açıklayın.
Adım 3: Minimum Mesaj Uzunluğu (byte) Değerini Tanımlama- Minimum Mesaj Uzunluğu (byte) alanına payload için zorunlu alt sınırı girin.
- En küçük geçerli değer 1’dir; size değeri > 0 olmalıdır.
- Gövde uzunluğu <= size olduğunda istek bloklanacağını unutmayın.
Adım 4: Boş Gövde Davranışını Belirleme (Varsa)- Beklenen alanların gerçekten taşındığından emin olmak için limit değerini örnek isteklere göre belirleyin.
- Çok düşük değerler boş payload’ı kaçırabilir, çok yüksek değerler gereksiz engelleme yapabilir.
- Test için küçük, canlı için gerçek üretim boyutlarına yakın eşik seçin.
Adım 5: Endpoint Bazlı Koşul Tasarlama (Varsa)- Koşul sekmesinde path, method, header gibi kriterlerle politikayı hedef endpoint’lere sınırlayın.
- Farklı minimum değerler için politikayı klonlayıp Policy Group altında gruplayın.
- Hassas veri kabul eden rotalarda politikayı daima aktif tutun.
Adım 6: Koşul Tanımlama (İsteğe Bağlı)- Condition sekmesine geçin.
- Koşullar, politikanın hangi durumda aktif olacağını belirler.

Örnekler:
- Ortam bazlı: Header = X-Environment, Operator = Equals, Value = production
- API Key bazlı: Header = X-API-Key, Starts With = PROD-
- Endpoint bazlı: Path = /api/admin/*
Koşul tanımlamazsa politika her zaman aktif

Detaylar için bakabilirsiniz: Koşullar (Conditions)
Adım 7: Hata Mesajı Özelleştirme (İsteğe Bağlı)- Error Message Customization sekmesine gidin.
- Erişim reddedildiğinde dönecek mesajı özelleştirin.

Varsayılan:
{ "statusCode": 403, "message": "Permissible Min. Size Policy Validation failed! Permissible min. size of request must be ( {0} ) but found ( {1} ) !" }

Özel:
{ "statusCode": 422, "errorCode": "PAYLOAD_TOO_SMALL", "message": "İstek gövdesi minimum 256 byte olmalıdır." }
Adım 8: Kaydetme- Sağ üstteki [Save] butonuna tıklayın.

Kontrol Listesi: Benzersiz isim. Zorunlu alanlar dolu. En az bir minimum boyut gereksinimi tanımlandı.

Sonuç:
- Politika listeye eklenir.
- API’lere bağlanabilir.
- Global politikaysa otomatik uygulanır.
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.

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 Akışa Politika Ekleme bölümüne bakabilirsiniz.

İleri Düzey Özellikler

ÖzellikAçıklama ve Adımlar
Dinamik Minimum Değer Yönetimi- Farklı ortamlar için (Geliştirme, Test, Canlı) ayrı politikalar oluşturun.
- Policy Group ile ortam bazlı dağıtım yapın.
- Değerleri kullanım istatistiklerine göre periyodik güncelleyin.
Payload Sağlamlık Denetimi- Minimum boyutu, zorunlu alanların toplam uzunluğunu kapsayacak şekilde belirleyin.
- Eksik alanları tespit etmek için hata mesajında beklenen/gerçek boyutu yayınlayın.
- QA sürecinde politikayı local kopya olarak test edin.
Global Politika Senkronizasyonu- Global politikada değişiklik yapmadan önce fetchUsedProxies çıktısını kontrol edin.
- Birden fazla API kullanıyorsa değişiklik öncesi ilgili ekipleri bilgilendirin.
- Güncelleme sonrası deploy işlemini tetikleyerek tüm Proxy’leri senkronize edin.

Best Practices

Yapılması Gerekenler ve En İyi Uygulamalar

KategoriAçıklama / Öneriler
Payload PlanlamaKötü: Minimum değeri 0 bırakmak.
İyi: Gerçek ortalama payload boyutuna göre eşik tanımlamak.
En İyi: Log analizlerine dayanarak eşiği periyodik olarak ayarlamak.
Koşul TasarımıKötü: Tüm endpoint’leri tek politikayla yönetmek.
İyi: Hassas endpoint’leri ayrı politika ile sınırlandırmak.
En İyi: Query Builder ile method/path bazlı koşullar kurgulamak.
Ortam AyrımıKötü: Geliştirme ve Canlı için aynı minimum değeri kullanmak.
İyi: Geliştirmede toleranslı, Canlı’da sıkı eşik belirlemek.
En İyi: Local politikalarla ortam bazlı eşikleri yönetmek.
Hata YönetimiKötü: Varsayılan mesajı değiştirmeden istemciyle paylaşmak.
İyi: Mesajı Türkçe/İngilizce olarak özelleştirmek.
En İyi: İstemcinin beklediği JSON formatında hata kodu ve min/gerçek değer bilgisi sağlamak.
Sürüm KontrolüKötü: Değişikliklerden önce yedek almamak.
İyi: Export ile manuel yedek oluşturmak.
En İyi: Export dosyalarını sürümleyip CI/CD hattına entegre etmek.

Güvenlik En İyi Uygulamaları

Güvenlik AlanıAçıklama / Uyarılar
Bot Trafik FiltrelemeMinimum boyut şartı ile boş veya sahte istekleri erken bloklayın.
Hata Mesajı İçeriğiHata mesajında sadece beklenen ve mevcut boyutu paylaşın; sistem iç ayrıntıları ifşa etmeyin.
Log TutarlılığıReddedilen istekleri güvenlik loguna yazın; kaynak IP, endpoint ve boyut bilgilerini koruyun.
Koşul GüvenliğiKoşul tanımlarında geniş wildcard kullanımlarından kaçının; kritik rotalar için özel politika oluşturun.
Global Değişiklik DenetimiKullanımda olan global politikayı güncellemeden önce etki analizini tamamlayın.

Kaçınılması Gerekenler

KategoriAçıklama / Uyarılar
Yanlış Eşik BelirlemeNeden kaçınılmalı: Çok düşük değerler boş payload’ı kaçırır.
Alternatif: Gerçek istek boyutlarını ölçüp eşik belirleyin.
Koşulsuz UygulamaNeden kaçınılmalı: Tüm endpoint’lerde gereksiz engellemeye yol açabilir.
Alternatif: Query Builder ile hedef endpoint’leri seçin.
Hata Mesajını KapatmaNeden kaçınılmalı: İstemci sorunu anlamaz, tekrar eden hatalar oluşur.
Alternatif: Minimum/gerçek boyutu açıklayan mesaj sağlayın.
Global Güncellemeyi Plansız YapmaNeden kaçınılmalı: Çoklu API’lerde aynı anda kesinti yaratabilir.
Alternatif: Önce test ortamında local politika ile doğrulayın.

Performans İpuçları

KriterÖneri / Etki
İstek Boyutu ÖlçümüÖneri: size değerini gerçek ortalamalara göre belirleyin.
Etki: Gereksiz engellemeleri önleyerek throughput’u korur.
Loglama SeviyesiÖneri: Reddedilen istekleri ayrı log kanalında tutun.
Etki: Analiz kolaylaşır, ana log’lar şişmez.
Policy Zinciri SırasıÖneri: Minimum boyut kontrolünü zincirde erken konumlandırın.
Etki: Küçük payload’lar için gereksiz diğer policy çalışmaları engellenir.
Koşul Ön BelleklemeÖneri: Sık kullanılan koşulları Query Builder’da optimize edin.
Etki: Koşul değerlendirme süresi azalır.
gRPC MesajlarıÖneri: gRPC çağrılarında beklenen seri hale getirilmiş boyutu dikkate alın.
Etki: gRPC performansı stabil kalır.

Sık Sorulan Sorular (SSS)

KategoriSoruCevap
GenelMinimum değer 0 olabilir mi?Hayır. size alanı en az 1 olmalı; 0 değeri boş payload’ları durdurmaz.
GenelPolitikayı sadece belirli endpoint’lerde kullanabilir miyim?Evet, Query Builder koşullarıyla hedef endpoint, method veya header temelli filtreleme yapılabilir.
TeknikBoyut ölçümü byte mı karakter mi?Gateway gövdeyi string olarak değerlendirir; tipik senaryoda karakter uzunluğu varsayılır, UTF-8’de karakter=byte varsayımı geçerlidir.
TeknikgRPC mesajlarında nasıl çalışır?availableForGrpc() true olduğu için serialize edilmiş mesajın uzunluğu kontrol edilir; eşik altındaysa istek bloklanır.
KullanımVarsayılan hata kodu nedir?403 Forbidden ve ERR-026 kodu döner; Error Message sekmesinden özelleştirilebilir.
KullanımGlobal politikayı lokal kopyaya çevirebilir miyim?Detay sayfasındaki Localize butonu politikayı local kopya olarak çoğaltmanızı sağlar; minimum değer ihtiyaca göre güncellenebilir.