Ana içeriğe geç

Rate Limit Kontrol Listesi

Bu özellik emekli edildi

2026.09 sürümünden itibaren gateway, Rate Limit Kontrol Listesi kayıtlarını artık değerlendirmez. Mevcut kayıtlarınız yükseltme sırasında otomatik olarak typed Limit Planı ve atamalara taşınmıştır — ayrıntı için bkz. Limit Planları → Yükseltmede Taşınan Legacy Limitler.

Belirli bir endpoint'i hedefleyen bir kural, aynı endpoint'i tek başına sayan bir Tek API Uç Noktası atamasına taşınır — legacy davranışla birebir aynıdır. Kuralın Hedef Tüketiciler listesi ise bir izin listesi kuralına dönüşür: listedeki her tüketici kendi açık atamasını korurken, listenin tamamı ayrıca listede (IN) operatörlü tek bir kural ataması olarak taşınır — listede olmayan bir kimlik legacy'deki gibi hedef-dışı eyleme (Akışı durdur ya da genel kota) düşmeye devam eder.

2026.09.3 sürümüyle Rate Limit Kontrol Listesi ekranı hem proje menüsünden hem de Yönetim menüsünden kaldırıldı: taşıma yükseltmede zaten tamamlanmıştı ve Limit Planları'nın yanında duran ikinci bir ekran yalnızca "ikisinin farkı ne" sorusunu doğuruyordu. Bütün limitler artık Kimlik Yönetimi → Limit Planları ekranından (sistem yöneticisi için ayrıca Yönetim → Kimlik Yönetimi → Limit Planları ekranından; bu ekran tüm projelerin planlarını tek listede gösterir) yönetilir. Eski kayıtların kendisi hâlâ durur ve yönetim API'si üzerinden okunabilir; yeni kayıt oluşturmak ya da mevcut bir kaydı güncellemek credentialRateLimit.retired hata koduyla reddedilir. Aşağıdaki tanım bilgileri tarihsel referans olarak kalır.

Taşıma sırasında typed tarafta karşılığı olmadığı için taşınmayan birkaç ayrıntı vardır: devre dışı bırakılmış kayıtlar, bir kuralın koşulu (policy condition), İşletme Sırası: metot politikalarından sonra (After API Method) konumu ve Kota/Daraltma Limit Değişimi Davranışı (kırp/sıfırla). Tam liste için yukarıda bağlantı verilen Yükseltmede Taşınan Legacy Limitler bölümüne bakın.

Bu politika ile her API ve endpoint için aşağıdaki ayarlar yapılabilir:

  • İzin Verilen Mesaj Sayısı (Permitted Message Count): Belirtilen zaman aralığında izin verilen maksimum istek sayısı.
  • Zaman Aralığı Süresi (Time Interval Period Length): Zaman aralığının uzunluğu.
  • Zaman Aralığı (Time Interval): Zaman aralığının birimi (saniye, dakika, saat, gün, ay).

Rate limit kontrolü şu şekilde çalışır:

Kimlik Belirleme

İstek geldiğinde, isteğin kimliği seçilen kimlik kaynağına göre belirlenir: ya seçtiğiniz bir değişkenin değeri (örn. IP adresi, kullanıcı veya API anahtarı) ya da kimlik doğrulama sonucunda elde edilen kullanıcı bilgisi kullanılır.

Hedef Kitle Kontrolü

Belirlenen kimliğin hedef kitlede olup olmadığı denetlenir. Kimlik, hedef tüketiciler listesinde yer alıyorsa veya hedef kitle koşullarından herhangi biriyle (VEYA mantığı) eşleşiyorsa hedef kitleye dahildir.

Rate Limit Kontrolü

Kimlik hedef kitledeyse, ilgili API ve endpoint için tanımlı limit kontrol edilir.

Hedef Dışı Eylem

Kimlik hedef kitlede değilse, hedef-dışı eylem uygulanır: istek engellenir; ya da hedef-dışı istekler için tanımlanan genel kota (tüm hedef-dışı istekler için tek ortak kota veya her kimlik için ayrı kota) devreye girer; ya da Bu kuralı onlara uygulama seçiliyse kural bu istekler için hiç çalışmaz ve istek etkilenmeden devam eder.

Karar Verme

İlgili limit aşılmışsa istek reddedilir, aşılmamışsa işleme devam edilir.

Yanıt ve İstatistikler

İsteğe yanıt verilirken, eğer yapılandırıldıysa, rate limit istatistikleri yanıt başlıklarına eklenir.

Bu yapılandırma, API'lerinizi aşırı kullanıma karşı korumak ve farklı kullanıcılar için farklı kullanım limitleri belirlemek için güçlü bir mekanizma sağlar.

Nereden Ulaşılır

Rate Limit Kontrol Listesi ekranına proje bağlamındaki Kimlik menüsü altındaki Rate Limit Kontrol girişinden ya da Admin > Kimlik Yönetimi menüsü altındaki aynı isimli girişten ulaşılabilir. Admin menüsünden oluşturulan bir kontrol listesi tüm projelerde geçerli olur; proje menüsünden oluşturulan bir kontrol listesi ise yalnızca ilgili projeye özgüdür.

Rate Limit kontrol listesi sayfası ayarlarını içeren görsele aşağıda yer verilmiştir:

Rate Limit Control master-detail konsol — sol kayıt listesi ve Definition sekmesi

Rate limit konfigürasyonu için kullanılan alanlar aşağıdaki tabloda görülmektedir.

AlanAçıklama
İsim
Konfigürasyonun kullanımını ve yönetimini kolaylaştırmak için isim yazılabilir. Konfigürasyon yönetimi ve seçimi sırasında bu isme ihtiyacınız olacaktır.
Açıklama
Konfigürasyonun kullanımını ve yönetimini kolaylaştırmak için açıklama yazılabilir.
Kimlik Kaynağı
(Identity Source)
Rate limit'in hangi kimliğe göre uygulanacağını belirler. Değişken seçimi seçildiğinde kimlik, sizin belirlediğiniz bir değişkenin değerinden (örn. IP adresi, kullanıcı veya API anahtarı) alınır. Kimlik doğrulamadan gelen kullanıcı seçildiğinde ise kimlik, kimlik doğrulama sonucunda elde edilen kullanıcı bilgisinden alınır; bu seçenek için ilgili API'de en sonda çalışan bir kimlik doğrulama politikası bulunmalıdır.
İşletme Sırası
(Execution Order)
Rate limit kontrolünün istek işleme akışında ne zaman çalışacağını belirler. Altı konumdan biri seçilebilir: proxy grubu, API proxy ve API metod politikalarının her birinin öncesi ya da sonrası. Varsayılan konum API proxy politikalarından öncedir; böylece kimliği istek başlığından okuyan bir kontrol, o başlığı işleyen (örneğin temizleyen) bir kimlik doğrulama politikasından önce çalışabilir. Kimlik kaynağı Kimlik doğrulamadan gelen kullanıcı seçildiğinde, kimlik yalnızca kimlik doğrulamadan sonra güvenilir olduğundan konum otomatik olarak API metod politikalarından sonraya ayarlanır ve değiştirilemez. Seçilen konum bir kimlik doğrulama politikasından önce çalışıyorsa, kimliğin çözümlenememe olasılığına karşı bir uyarı gösterilir.
Periyot Tipi
(Interval Window Type)
Rate limit hesaplamasında kullanılacak zaman aralığının türünü belirler. FIXED veya SLIDING değerlerini alabilir. FIXED seçildiğinde, belirli bir süre içinde (örn. her saat başı) sabit bir sayıda istek kabul edilir. SLIDING seçildiğinde, son belirli süre içindeki (örn. son 1 saat) istek sayısı dikkate alınır.
Cache Bağlantısı Zaman Aşım Süresi (saniye)
(Cache Connection Timeout (second))
Cache servisine bağlanırken beklenecek maksimum süreyi saniye cinsinden belirler.
Cache Bağlantı Hatası Eylemi
(Action for Cache Connection Error)
Cache servisine bağlantı sırasında hata oluştuğunda yapılacak işlemi belirler. FAIL seçildiğinde bağlantı hatası durumunda istek reddedilir, CONTINUE seçildiğinde ise istek işlenmeye devam eder.
Rate Limit İstatistiklerini Response Header'da Göster
(Show Rate Limit Statistics in Response Header)
Rate limit bilgilerinin yanıt başlıklarında gösterilip gösterilmeyeceğini belirler. TRUE olarak ayarlandığında, yanıt başlıklarında kalan istek sayısı, limit değeri ve limitin yenileneceği süre gibi bilgiler eklenir (RateLimit-Remaining, RateLimit-Limit, RateLimit-Reset, X-RateLimit-Identity, X-RateLimit-Type başlıkları).
Uygulanan alan
(Apply by Variable)
Rate limit uygulanacak kullanıcı veya istemciyi tanımlamak için kullanılacak değişkeni belirler. Bu, örneğin IP adresi, kullanıcı kimliği veya API anahtarı olabilir. Yalnızca kimlik kaynağı Değişken seçimi iken görünür. Seçilen değişken kimlik doğrulama ile elde edilen bir kimliğe dayanıyorsa, ilgili kimlik doğrulama politikasının bu kontrolden önce çalışması gerektiğine dair bir uyarı gösterilir.
Hedef Kitle
(Target Audience)
Rate limit'in uygulanacağı kimlikleri belirleyen koşulların listesidir. Her koşul bir operatör (eşittir, içerir, ile başlar, ile biter, listede yer alır vb.) ve bir değerden oluşur. Koşullar VEYA mantığıyla değerlendirilir; kimlik, koşullardan herhangi biriyle eşleşirse hedef kitleye dahil edilir.
Hedef Tüketiciler
(Target Consumers)
Rate limit uygulanacak spesifik tüketici değerlerinin listesidir. Bu listede bulunan tüketici değerleri için rate limit uygulanır.
Hedef-dışı Eylem
(Out-of-target Action)
Kimliği hedef kitlede yer almayan isteklere ne yapılacağını belirler. Akışı durdur seçildiğinde bu istekler engellenir — bu seçim listeyi bir kara listeye dönüştürür: hedef kitlenin dışındaki her kimlik yalnızca limitlenmez, reddedilir. Genel kota uygula seçildiğinde hedef-dışı istekler için ayrı bir genel kota uygulanır. Bu kuralı onlara uygulama seçildiğinde ise hedef-dışı istekler bu liste tarafından ne engellenir ne de sayılır. Mevcut listeler Akışı durdur seçeneğinde kalır.
Kota Modu ve Genel Kota Limitleri
(Quota Mode)
Yalnızca hedef-dışı eylem Genel kota uygula iken kullanılır. Tüm hedef-dışı için tek ortak kota seçildiğinde tüm hedef-dışı istekler tek bir ortak limiti paylaşır; Her hedef-dışı kimlik için ayrı kota seçildiğinde her hedef-dışı kimlik kendi limitine sahip olur. Genel kota için izin verilen mesaj sayısı, zaman miktarı ve zaman birimi bu bölümde tanımlanır.
API'ler ve Endpoint'ler
(APIs and Endpoints)
Rate limit politikasının uygulanacağı API'ler ve endpoint'lerin listesidir.
Kaydet ve Yükle Tuşu
(Save and Deploy)
Ayarların/değişikliklerin tamamlanması sonrasında Kaydet ve Yükle (Save and Deploy) tuşuna basılarak ayarların kaydedilmesi ve dağıtılması sağlanır.
Hedef Tüketiciler Listesinde Sayfalama

Hedef Tüketiciler listesine çok sayıda kayıt eklendiğinde tablo artık sayfalanır (sayfa başına 10, 25, 50 veya 100 kayıt arasından seçim yapılabilir) ve tüketici adına göre arama ile sıralama yapılabilir. Böylece, çok sayıda tüketici içeren kontrol listelerinde daha önce her tüketicinin adının tek tek çözümlenmesinden kaynaklanan aşırı istek yüküyle ilişkili tarayıcı tarafı performans sorunları ortadan kalkmıştır.

API istemcisini hedefleme

Bir API istemcisinin kendine ait bir kullanıcı adı yoktur — bu politikanın bir kimliği çözümlediği ya da eşleştirdiği her yerde (Hedef Tüketiciler, bir Hedef Kitle koşulu ya da kimlik doğrulamadan çözümlenen bir kimlik) istemcinin client kimliği kullanılır. Burada tam olarak bir tüketicinin kullanıcı adının oynadığı rolü oynar.

Hata Mesajı Özelleştirme

RLCL politikasında, hız limiti aşıldığında veya kimlik hedef listede olmadığında gönderilen hata yanıtları tam olarak özelleştirilebilir.

Özelleştirilebilecek hata tipleri:

  • Hız limiti aşıldığında (429 Too Many Requests)
  • Kimlik çözümlenemediğinde
  • Kimlik hedef kitlede olmadığında

Her hata türü için şunlar tanımlanabilir:

  • HTTP durum kodu (örn. 429, 403, 400)
  • Hata kodu (iş mantığınıza göre tanımlanan kod)
  • Hata mesajı (genellikle kısa bir statü satırı)
  • Özel mesaj şablonu (isteğe bağlı; değişken içerebilen tam JSON veya XML yanıt gövdesi)
Öncelik Kuralı

Bir hatanın kendi özel mesaj şablonu varsa, o kullanılır. Yoksa plan genelindeki şablon devreye girer. O da yoksa sistemin varsayılan mesajı döndürülür. Yani özel tanım, daha genel tanımı geçersiz kılar. Bu davranış Apinizer'daki diğer politikalarla aynıdır.

Şablonda Kullanılabilir Değişkenler:

Özel mesaj şablonunda; hata bilgileri (hem sistemin varsayılan hem de özelleştirilmiş hata kodu, hata mesajı ve HTTP durum kodu), istek bilgileri (HTTP yöntemi, istek yolu, istemci adresi, sorgu dizesi), ilişki kimliği, API bilgileri ve tarih/saat değerleri kullanılabilir. Tüm değişkenlerin tam listesi, düzenleme ekranındaki Kullanılabilir Değişkenler panelinden kopyalanabilir.

Şablon örneği (JSON):

{
"errorCode": "#{error.defaultErrorCode}",
"message": "#{error.defaultMessage}",
"httpStatusCode": #{error.defaultHttpStatusCode}
}