22 May 2025·8 dk okuma

Plan kısıtlamalarını uygulama: arka uç, arayüz kısıtlamaları ve kontroller

Plan kısıtlamalarını uygulamak ödeme duvarlarını güvenilir kılar. Arka uç kuralları, arayüz kısıtlamaları ve arka plan kontrollerini karşılaştırın; ayrıca basit bir dağıtım kontrol listesi.

Plan kısıtlamalarını uygulama: arka uç, arayüz kısıtlamaları ve kontroller

Kısıtlamalar yanlış yerde uygulandığında neler ters gider

Plan kısıtlamaları genelde dört şeyden birini ifade eder: ürünü kaç kişinin kullanabileceği (koltuklar), ne kadar veri saklayabileceğiniz (kayıtlar, satırlar, dosyalar), ne kadar işlem yapabileceğiniz (istekler, çalıştırmalar, mesajlar) veya hangi özelliklere erişebileceğiniz (export, entegrasyonlar veya gelişmiş roller gibi).

Sorunlar, bu kısıtlamalar en kolay yapılan yerde uygulanınca başlar — doğru yerde uygulanmayınca. Yaygın bir durum şudur: arayüz kilitli görünüyor, herkes bunun kilitli olduğu varsayımında bulunuyor. Ama “kilitli görünmek” ile “gerçekten engellenmek” aynı şey değildir.

Bir limit sadece arayüzde uygulanıyorsa, genellikle insanlar onu başka yollarla atlayabilir. Bu eski bir yer imi, içe aktarılmış bir otomasyon, bir mobil istemci veya doğrudan bir API çağrısı kadar basit olabilir. İyi niyetli kullanıcılar bile arayüz ile arka uç uyuşmazsa hata yapabilir.

Yanlış yerde uygulama yapıldığında tipik olarak şu sorunlar ortaya çıkar:

  • Gelir sızıntıları: müşteriler ücretli özellikleri kullanmaya devam eder çünkü gerçekten durdurulmazlar.
  • Destek yükü artışı: insanlar kafa karıştırıcı hatalar alır ya da hiç hata almaz ve neden faturalama kullanım ile uyuşmuyor diye sorarlar.
  • Karışık yükseltmeler: kullanıcılar yükseltir, ama önbelleğe alınmış ekranlar veya gecikmeli kontroller hâlâ engeller.
  • Veri temizliği: sonradan ekstra koltukları, kayıtları veya entegrasyonları düzeltmeniz gerekir.

Zayıf uygulama aynı zamanda bir güvenlik sorunu haline gelebilir. Arka uç bir işlemin mevcut plan için izinli olup olmadığını doğrulamıyorsa, bir kullanıcı erişmemesi gereken verilere veya yeteneklere erişebilir. Örneğin, “Export” butonunu gizlemek koruma değildir eğer export uç noktası hâlâ yanıt veriyorsa. Aynı risk koltuk davetleri, yönetici eylemleri ve premium entegrasyonlarda da ortaya çıkar.

Hızlı, gerçekçi bir senaryo: Basic plandaki bir ekip 3 koltukla sınırlı. Arayüz üçüncü kullanıcı katıldıktan sonra “Üye davet et” butonunu gizliyor. Ama davet API'si hâlâ isteği kabul ediyor veya arka plan işi kuyruğa alınmış davetleri daha sonra işliyor. Ekip 6 aktif kullanıcıya sahip oluyor; şimdi faturalama anlaşmazlığınız, mutsuz bir müşteriniz ve güvenle uygulayamacağınız bir politikanız var.

Güvenilir ödeme duvarları, arka uçta alınan tutarlı kararlarla gelir; arayüz rehberlik sunar, kapı bekçisi değil.

Üç uygulama katmanı, basitçe

Plan kısıtlamalarını güvenilir şekilde uygulamak tek bir mükemmel ödeme duvarından çok, doğru yerlere kontroller koymaktır. Bunu üç katman olarak düşünün: kullanıcının gördüğü, sunucunun izin verdiği ve sistemin daha sonra denetlediği.

1) Arayüz kısıtlaması (kullanıcının gördüğü)

Arayüz kısıtlaması, uygulamanın plana göre eylemleri gizlemesi, devre dışı bırakması veya etiketlemesidir. Örneğin, “Takım arkadaşı ekle” butonu 3 koltuk bildirisi ile devre dışı bırakılabilir.

Bu katman açıklık ve kazara tıklamaların azalması içindir. Deneyimi iyileştirir ama güvenlik değildir. Herkes hâlâ API'yi doğrudan çağırarak, eski istekleri tekrar oynatarak veya farklı bir istemci kullanarak eylemi tetiklemeye çalışabilir.

2) Arka uç uygulaması (gerçekte neye izin verilir)

Arka uç uygulaması, planı aşan eylemleri reddeden sunucudur. Tutarlı, net bir hata döndürmelidir ki arayüz bunu işleyebilsin. Bu, gerçeğin kaynağıdır.

“Gerçeğin kaynağı” demek, her seferinde bir yerin karar verdiği anlamına gelir: bu eyleme izin var mı yok mu. Arayüz “evet” derken arka uç “hayır” diyorsa, arka uç kazanır. Bu web, mobil, yönetici araçları ve entegrasyonlar arasında davranışı tutarlı tutar.

3) Arka plan kontrolleri (sonradan doğrulayanlar)

Arka plan kontrolleri, sonradan fazla kullanım veya kenar durumları arayan job'lardır. Gecikmeli faturalama güncellemeleri, yarış durumları (aynı anda iki kullanıcının yükseltme veya davet etmesi) veya asenkron sayılan kullanım gibi durumları yakalarlar.

Arka plan kontrolleri arka uç uygulamasının yerini almaz. Onlar tespit edip düzeltmek içindir, gerçek zamanlı karar vermek için değil.

Üç katmanı hatırlamanın en basit yolu:

  • Arayüz kısıtlaması: kullanıcıyı yönlendirir ve beklenti belirler
  • Arka uç uygulaması: kuralları ihlal ediyorsa eylemi engeller
  • Arka plan kontrolleri: aradan sızanları tespit edip düzeltir

AppMaster gibi bir platformla çalışıyorsanız, kural kararını arka uç mantığında tutmaya çalışın (örneğin Business Process içinde), sonra arayüzde aynı kararı yansıtın; böylece deney düzgün olur.

Arka uç uygulaması: ödeme duvarları için gerçeğin kaynağı

Plan kısıtlamalarını gerçekten uygulamak istiyorsanız, arka uç hakem olmalıdır. Arayüz butonları gizleyebilir ama doğrudan API çağrısını, eski bir mobil uygulama sürümünü, bir scripti veya aynı anda gerçekleşen iki işlemin yarışmasını durduramaz.

Basit bir kural ödeme duvarlarını güvenilir kılar: oluşturma, değiştirme veya tüketme yapan her istek işlem öncesi kuralları kontrol eder.

Her istekte neyi doğrulamalısınız

İşi yapmadan önce bağlamı ve limiti doğrulayın. Çoğu uygulamanın her seferinde aynı dizi kontrole ihtiyacı vardır:

  • Plan: kiracının şu anda neler yapabileceği (özellikler, kotalar, zaman periyodu)
  • Rol: kim istekte bulunuyor (sahip, yönetici, üye) ve hangi izinlere sahipler
  • Kiracı: isteğin hangi workspace veya organization'a ait olduğu (tenantlar arası erişim yok)
  • Kaynak: hangi nesneye dokunuluyor (proje, koltuk, dosya, entegrasyon) ve sahibi kim
  • Kullanım: mevcut sayaçlar karşı limitler (kullanılan koltuklar, bekleyen davetler, bu ayki API çağrıları)

Mantığı sunucu tarafında tutmak web ve mobilin aynı şekilde davranmasına yardımcı olur. Tek bir arka uç kararı, iki ayrı istemcinin kuralları farklı yorumlamasına gerek bırakmaz.

Arayüzün işleyebileceği hatalar döndürün

"Bir şeyler yanlış gitti" veya genel 500 hataları gibi muğlak başarısızlıklardan kaçının. Bir limit eylemi engelliyorsa, arayüzün doğru mesajı ve bir sonraki adımı gösterebilmesi için açık, tutarlı bir yanıt döndürün.

İyi bir limit yanıtı genellikle şunları içerir:

  • Spesifik bir hata kodu (örneğin PLAN_LIMIT_SEATS)
  • Kullanıcıya gösterilebilecek sade bir mesaj
  • Limit ve mevcut kullanım (UI'nin farkı açıklayabilmesi için)
  • Yükseltme ipucu (hangi plan veya eklenti engeli kaldırır)

AppMaster ile inşa ediyorsanız, bu kontrolleri merkezileştirmek kolaydır çünkü API uç noktalarınız ve iş mantığınız aynı yerde yaşar. Plan ve izin kontrollerini aynı arka uç akışına (örneğin Business Process içinde) koyun ki web ve native mobil uygulamalar her seferinde aynı karar ve aynı hata biçimini alsın.

Arka uç gerçeğin kaynağı olduğunda, arayüz kısıtlaması bir kolaylık katmanı olur, güvenlik katmanı değil. Bu, ödeme duvarınızı tutarlı, öngörülebilir ve atlanması zor kılar.

Arayüz kısıtlaması: faydalı ama asla yeterli değil

Arayüz kısıtlaması, ürün arayüzünün plana göre insanları yönlendirmesidir. Bir seçeneği gizlersiniz, bir butonu devre dışı bırakırsınız veya bir kilit simgesi ve yükseltme mesajı gösterirsiniz. Doğru yapıldığında, bu kısıtlamalar kullanıcıların neyin mevcut olduğunu tıklamadan önce görmesini sağlar ve adil hissettirir.

Arayüz kısıtlaması hayal kırıklığını azaltmak için harikadır. Örneğin, Basic plandaki biri veri dışa aktaramıyorsa, son adımda başarısız olmasına izin vermektense “Export (Pro)” göstermek daha iyidir. Bu aynı zamanda destek yükünü azaltır; çünkü birçok “Neden bunu yapamıyorum?” sorusu üründe cevaplanır.

Ama arayüz kısıtlaması tek başına hiçbir şeyi güvence altına alamaz. Bir kullanıcı istek oluşturabilir, eski bir API çağrısını tekrar oynatabilir, işlemleri otomatikleştirebilir veya mobil istemciyi değiştirebilir. Eğer arka uç isteği kabul ederse, limit görünümlere rağmen fiilen yok olur. Bu yüzden plan kısıtlamalarını her korunan eylem için sunucu tarafında da doğrulamalısınız.

Kullanıcıların gerçekten anlayacağı kilitli durumlar

İyi bir kilitli durum spesifik olmalıdır. “Mevcut değil” demek yerine neyin engellendiğini, nedenini ve yükseltince ne değişeceğini söyleyin. Metni kısa ve somut tutun.

Örneğin: “Takım davetleri planınızda 3 koltuk ile sınırlıdır. Daha fazla koltuk eklemek için yükseltin.” Açık bir sonraki eylem ekleyin: yükseltme isteği veya yöneticiden talep gibi.

İnsanlar limite varmadan önce limitleri gösterin

En iyi kısıtlama sürprizleri önler. Kullanıcıların karar verdiği yerlerde kullanım görünür olsun, sadece fatura sayfasında değil.

Basit bir desen:

  • İlgili ekranda “3 üzerinden 2 koltuk kullanıldı” gibi küçük bir sayaç gösterin.
  • Erken uyarı verin (örneğin %80'de) ki kullanıcılar planlayabilsin.
  • Limitte ne olacağını açıklayın (engellenecek, sıraya alınacak veya faturalandırılacak).
  • Arayüzü web ve mobilde tutarlı tutun.

AppMaster gibi bir UI oluşturucu ile yapıyorsanız, kontrolleri devre dışı bırakmak ve yükseltme istemleri göstermek sorun değil. Sadece arayüz kısıtlamasını rehberlik olarak kullanın, uygulama arka uçta doğrulanmalı ve arayüz başarısız eylemleri önlemeye yardımcı olmalı.

Arka plan kontrolleri: fazla kullanımları ve kenar durumları yakalamak

Web ve mobilde tutarlılığı koruyun
Web ve yerel mobil uygulamalarınız aynı plan uygulama mantığını paylaşsın.
Uygulamaya Başla

Arka plan kontrolleri, plan kısıtlamalarında güvenlik ağıdır. Arka uç uygulamasının veya arayüzün yerini almazlar. Geciken olayları, karışık entegrasyonları, tekrarları ve sistemi kötüye kullanma girişimlerini yakalarlar.

İyi bir kural: kullanıcı bir şeyi tetikleyebiliyorsa (tıklama, API çağrısı, webhook), arka uç limiti o anda uygulamalıdır. Eğer limit toplamlar veya diğer sistemlerden gelen verilere bağlıysa, doğrulayıp düzeltmek için arka plan kontrolleri ekleyin.

Arka plan kontrolleri ne için iyidir

Bazı limitler gerçek zamanlı olarak hesaplanması uygulamayı yavaşlatır. Arka plan job'ları kullanımı ölçmek ve daha sonra uzlaşı sağlamak için idealdir; böylece her isteği engellemeden uygulamayı yavaşlatmazsınız.

Yaygın arka plan kontrolleri şunlardır:

  • Kullanım ölçümü (günlük API çağrıları, aylık dışa aktarımlar, depolama toplamları)
  • Kota uzlaşısı (tekrarlar, silmeler veya kısmi hatalardan sonra sayıları düzeltme)
  • Dolandırıcılık sinyalleri (alışılmadık patlamalar, tekrarlayan hatalar, çok sayıda davet denemesi)
  • Gecikmiş güncellemeler (ödeme sağlayıcı yenilemeyi beklenenden sonra onaylıyor)
  • Kenar durumu temizliği (kullanımı artıran yetim kaynaklar)

Bu job'ların çıktısı açık bir hesap durumu olmalıdır: mevcut plan, ölçülmüş kullanım ve "over_limit" gibi bir neden ve zaman damgası ile birlikte bayraklar.

Bir job fazla kullanım bulduğunda ne yapmalı

Burada birçok ödeme duvarı rastgele hissedilir. Sistem sonradan bir fazla kullanım keşfettiğinde ne olacağına önceden karar vermek öngörülebilirlik sağlar.

Basit tutun:

  • Kullanımı arttıran bir sonraki yeni eylemi durdurun (oluşturma, davet etme, yükleme), ancak mevcut verilerin okunmasını bozmeyin.
  • Açık bir mesaj gösterin: hangi limit aşıldı, ölçülen mevcut sayı ne, ve yapılabilecekler.
  • Bir hoşgörü süresi veriyorsanız bunu açıkça belirtin (örneğin "yükseltmeniz için 3 gün" veya "fatura dönemi sonuna kadar").
  • Sert bir durdurma ise web, mobil ve API'de tutarlı uygulayın.

Hoşgörü süreleri depolama gibi kazara aşılabilen limitler için iyidir. Sert durdurmalar maliyeti veya güvenliği koruyan limitler (örneğin düzenlemeye tabi çalışma alanlarındaki koltuklar) için uygundur. Anahtar nokta tutarlılıktır: her seferinde aynı kural, bazen çalışan bir şey değil.

Son olarak, spam yapmadan bildirimde bulunun. Durum "over limit"e döndüğünde bir uyarı, normale döndüğünde bir başka uyarı gönderin. Takımlar için, fazla kullanımı tetikleyen kullanıcıyı ve hesap yöneticisini bildirin ki düzeltme kaybolmasın.

Adım adım: güvenilir bir plan kısıtlama sistemi tasarlayın

Arızaları arka plan işleriyle yakalayın
İstekleri yavaşlatmadan kullanım uzlaşısı sağlamak ve kenar durumları yakalamak için zamanlanmış kontroller ekleyin.
Kontroller Ekle

Güvenilir bir ödeme duvarı kodda değil kağıt üzerinde başlar. Plan kısıtlamalarını öngörülebilir yapmak istiyorsanız, arka uç, arayüz ve raporlamanın üzerinde anlaşabileceği şekilde kuralları yazılı hale getirin.

1) Satışını yaptığınız her limiti envanterleyin

Önce limitleri üç kovana ayırarak listeleyin: özellik erişimi (kullanıp kullanamayacakları), miktar kısıtları (bir şeyin kaç adeti) ve hız limitleri (ne sıklıkla). Ne sayıldığını ve ne zaman sıfırlandığını netleştirin.

Örneğin, "5 koltuk" demek yeterli değildir. Bunun aktif kullanıcıyı mı, davet edilmiş kullanıcıyı mı yoksa kabul edilmiş davetleri mi ifade ettiğine karar verin.

2) Her limit için tam uygulama noktalarını seçin

Sonra her limitin nerede kontrol edilmesi gerektiğini işaretleyin. Veri değiştiren veya size maliyet getiren eylemler bağlamında düşünün.

  • Kayıt oluşturan veya güncelleyen API istekleri
  • Veritabanı yazmaları (sayının gerçekten değiştiği an)
  • Dışa aktarımlar ve dosya oluşturma
  • Harici çağrılar tetikleyen entegrasyonlar (e-posta, SMS, ödemeler)
  • Davetler, rol değişiklikleri ve toplu içe aktarımlar gibi yönetici eylemleri

AppMaster gibi no-code platformlarda bu eşleme genellikle endpointlerin ve Business Process adımlarının bir kontrol listesine dönüşür.

3) Sert durdurma mı yoksa yumuşak limit mi olacağına karar verin

Her kural aynı davranışı gerektirmez. Sert durdurma eylemi hemen engeller (güvenlik ve maliyet için idealdir). Yumuşak limit izin verir ama işaretler (denemeler veya deneme süreleri için faydalı).

Her kural için bir cümle yazın: "X olduğunda ve kullanım Y ise Z yap." Bu, "duruma göre" mantığının sızmasını önler.

4) Hataları ve eşleşen arayüz durumlarını standartlaştırın

Küçük bir backend hata kodu seti tanımlayın, sonra UI bununla tutarlı şekilde yanıt versin. Kullanıcı tek bir net mesaj ve tek bir net sonraki adım görmeli.

Örnek: SEAT_LIMIT_REACHED hata kodu, devre dışı bırakılmış "Invite" butonu durumu ve "5/5 koltuk kullanıldı. Davet etmek için önce bir koltuk kaldırın veya yükseltin." gibi bir mesaj ile eşleşir.

5) Savunma gerektirebilecek kararları loglayın

Her limit kararını kaydedin: kim işlem yaptı, ne denedi, mevcut kullanım, plan ve sonuç. Bir müşteri "Engellendik ama engellenmemeliydik" dediğinde veya bir fazlalık denetlenmesi gerektiğinde bunlar kullanılacak.

Gerçekçi bir örnek: davetler ve koltuk limitleri

Basic plandaki bir ekip 5 koltuk limiti ile olsun. Zaten 4 aktif kullanıcıları var ve iki yeni takım arkadaşını davet etmek istiyorlar. Burada limitlerin arayüz, API ve sonradan yapılan temizlik işlerinde tutarlı olması gerekir.

Arayüz, kullanıcı duvara çarpmadan önce limiti açıkça göstermeli: "5 üzerinden 4 koltuk kullanıldı" ve "1 kalan" davet butonunun yanında gösterilmeli. 5 aktif koltuğa ulaştıklarında Invite butonunu devre dışı bırakın ve nedenini kısa, anlaşılır bir dille açıklayın. Bu çoğu hayal kırıklığını engeller ama sadece bir kolaylık özelliğidir.

Önemli kısım: arka uç gerçeğin kaynağı olmalıdır. Birisi arayüzü atlayıp davet endpoint'ine doğrudan çağrı yaparsa bile, sunucu planı aşacak herhangi bir daveti reddetmelidir.

Basit bir arka uç kontrolü davet isteği için şöyle görünür:

  • Workspace planını ve koltuk sınırını yükle.
  • Aktif koltukları say ("bekleyen davetler"in sayılıp sayılmayacağına karar ver).
  • Yeni davet sınırı aşacaksa "Seat limit reached" gibi bir hata döndür.
  • Olayı destek ve faturalama görünürlüğü için logla.

AppMaster ile bunu kurarsanız, Users, Workspaces ve Invitations modellerini Data Designer içinde tanımlayıp mantığı bir Business Process içine koyabilirsiniz; böylece her davet yolu aynı kuraldan geçer.

Arka plan kontrolleri kirli kenarları işler. Davetler süresi dolar, iptal edilir veya asla kabul edilmez. Temizlik yapılmazsa "kullanılan koltuk" sayınız sapar ve kullanıcılar hatalı bir şekilde engellenir. Zamanlanmış bir job, süresi dolmuş davetleri işaretleyerek, iptal edilenleri kaldırarak ve gerçek veritabanı durumundan koltuk kullanımını yeniden hesaplayarak bunu düzeltir.

Arka uç bir daveti engellediğinde, yükseltme akışı anında ve açık olmalı. Kullanıcı şu mesajı görmeli: "Basic'te 5 koltuğa ulaştınız. Daha fazla ekip arkadaşı eklemek için yükseltin." Yükseltme ve ödeme sonrası iki şey değişmeli:

  • Plan kaydı güncellenir (yeni koltuk limiti veya yeni plan).
  • Kullanıcı aynı daveti detayları tekrar girmeye gerek kalmadan yeniden deneyebilir.

Doğru yapıldığında arayüz sürprizleri önler, arka uç kötüye kullanımı engeller ve arka plan işi yanlış engellemeleri önler.

Ödeme duvarlarını güvenilmez yapan yaygın hatalar

Açık kilitli durumlar oluşturun
Kullanıcıların sınırları çarpmadan önce görmesi için arayüzünüzde arka uç kurallarını yansıtın.
Arayüz İnşa Et

Çoğu ödeme duvarı basit nedenlerle başarısız olur: kurallar dağınık, kontroller çok erken yapılıyor veya sistem bir şey ters gittiğinde "iyi niyetle" davranıyor. Plan kısıtlamalarını gerçek dünyada tutarlı kılmak istiyorsanız bu tuzaklardan kaçının.

Ürünlerde görülen hatalar

  • Arayüzü koruma olarak görmek. Bir butonu gizlemek veya bir formu devre dışı bırakmak kullanıcıya yardım eder, ama doğrudan API çağrılarını, eski uygulama sürümlerini veya otomasyonu durdurmaz.
  • Kısıtlamaları ilk ekranda kontrol edip son eylemde tekrar kontrol etmemek. Örneğin, davet sayfasında "1 koltuk kaldı" uyarısı vermek ama kullanıcı "Gönder"e tıkladığında tekrar kontrol etmemek. İki yönetici aynı anda davet gönderirse her iki davet de geçebilir.
  • Güncel olmayan önbelleğe alınmış plan verisi kullanmak. Plan değişikleri, yenilemeler ve yükseltmeler sürekli olur. Eğer uygulamanız "Pro plan"ı birkaç dakika önceki bir önbellekten okuyorsa, kullanıcı yükseltme sonrası engellenebilir veya düşürme sonrası izin verilmeye devam edebilir.
  • Farklı yerlerde kullanımı farklı saymak. Bir endpoint "aktif kullanıcıları" sayarken başka bir yer "davet edilenleri" sayıyorsa ve bir background job "benzersiz e-postaları" sayıyorsa sonuç rastgele olur ve bu hatalara veya haksız faturalandırmaya benzer.
  • Hatalarda açık bırakmak. Faturalama servisi zaman aşımına uğradığında veya kota tablonuz kilitlendiğinde işlemi "bu seferlik geç" diye geçirmek suistimale davetiye çıkarır ve denetlenebilirliği imkansız kılar.

Bu sorunları tespit etmenin pratik yolu, bir ücretli eylemi baştan sona takip edip: son karar nerede alınıyor ve hangi veri kullanılıyor diye sormaktır.

AppMaster gibi bir araçla inşa ediyorsanız, risk genellikle UI oluşturucuda değil, iş mantığının nerede yaşadığıdır. Son kontrolü yaratma işini gerçekleştiren Business Process'in içine koyun (davet oluştur, dosya yükle, rapor üret gibi), sonra web veya mobil UI sadece arka ucu yansıtsın.

Bir şey başarısız olduğunda, açık bir "plan limitine ulaşıldı" yanıtı döndürün ve yardımcı bir mesaj gösterin; ama kuralı tek bir yerde tutun ki web, mobil ve otomasyon arasında tutarlılık olsun.

Yayına almadan önce hızlı kontroller

Plan kurallarını hızlıca merkezileştirin
Planları, kiracıları ve kullanım sayaçlarını tek yerde modelleyin ve kuralları tutarlı tutun.
İnşa Etmeye Başla

Bir ödeme duvarı veya kota yayınlamadan önce "bunu nasıl atlarım?" zihniyetiyle hızlı bir kontrol yapın. Çoğu sorun, bir power user gibi test ettiğinizde ortaya çıkar: birden çok açık sekme, tekrarlar, yavaş ağlar ve kullanıcıların oturum ortasında yükseltme veya düşürme yapması. Bu kontroller plan kısıtlamalarının öngörülebilir ve güvenli olmasına yardımcı olur.

Arka uç kontrolleri (her seferinde geçmeli)

Gerçeğin kaynağı ile başlayın: korunmuş her eylem arka uç tarafından izin verilmeli veya engellenmelidir, arayüz butonu gizlenmiş olsa bile.

  • Korunan her yazma işlemini arka uçta doğrulayın (oluşturma, davet, yükleme, dışa aktarma, API çağrısı).
  • Limitleri listeleme veya veri görüntüleme sırasında değil, yazma anında uygulayın.
  • Her limit için tutarlı bir hata kodu döndürün (örneğin: seat_limit_reached, storage_quota_exceeded).
  • Kullanım sayaçlarını bir yerde tanımlayın (ne sayılır, ne sayılmaz) ve zaman penceresini kilitleyin (günlük, aylık, fatura döngüsü bazında).
  • Engellemeleri bağlam ile loglayın: kim engellendi, hangi limit, mevcut kullanım, izin verilen kullanım ve istek yolu.

AppMaster'da inşa ediyorsanız, bu genellikle kontrolün kaydın yazılmasından veya eylemin gerçekleştirilmesinden hemen önce Business Process içinde olduğu anlamına gelir.

Arayüz ve mesajlaşma kontrolleri (kafa karışıklığını azaltın)

Arayüz kısıtlaması değerli olmakla birlikte arka uç davranışıyla birebir eşleşmelidir. Hata kodlarınızın net, spesifik mesajlarla eşleştiğinden emin olun.

İyi bir test: limite kasıtlı olarak ulaşın ve kullanıcıya (1) ne olduğunu, (2) bir sonraki adımı ve (3) ne kaybolmayacağını gösterip göstermediğini kontrol edin. Örnek: "5/5 koltuk kullanıldı. Daha fazla davet etmek için yükseltin veya önce bir koltuğu kaldırın."

Senaryo testleri (kenar durumları yakalayın)

Her sürüm öncesi küçük, tekrarlanabilir bir test seti çalıştırın:

  • Limitin üzerine çıkarken yükseltme: yükseltme sonrasında eylem hemen başarılı olmalı.
  • Mevcut kullanımın altına düşürme: uygulama yeni yazmaları engellemeli, görüntülemeye izin vermeli ve neyin değişmesi gerektiğini net göstermeli.
  • İki kullanıcı aynı limiti aynı anda zorlarsa: bir slot kaldıysa sadece biri başarılı olmalı.
  • Tekrarlar ve zaman aşımı: başarısız bir yanıt kullanımın yanlış ikiye sayılmasına yol açmamalı.
  • Zaman penceresi yenilenmesi: sayaçlar beklenen zamanda sıfırlanmalı, erken veya geç olmamalı.

Bunların hepsi geçerse, ödeme duvarınız atlanması zor ve desteklenmesi daha kolay olur.

Sonraki adımlar: tutarlı uygulayın ve sürdürülebilir tutun

Küçük başlayın. Maliyeti veya suistimali doğrudan etkileyen bir yüksek değerli limiti (koltuklar, projeler, API çağrıları, depolama) seçin ve onu "altın standart" uygulamanız yapın. O ilk limit sağlam olduğunda, aynı deseni diğer limitlere kopyalayın; her seferinde yeni bir yaklaşım icat etmeyin.

Tutarlılık zekadan daha önemlidir. Amaç herhangi bir geliştiricinin (veya gelecekteki sizin) hızlıca iki soruya cevap verebilmesi: limit nerede saklanıyor ve nerede uygulanıyor?

Limitlerin nasıl çalıştığını standartlaştırın

Her yerde tekrar kullanacağınız basit bir sözleşme tanımlayın: ne sayılıyor, hangi zaman penceresi uygulanıyor (varsa) ve limit aşıldığında sistemin ne yapacağı (engelle, uyar, izin ver sonra faturalandır). Kuralları web, mobil ve entegrasyonlar için aynı tutun.

Hafif bir kontrol listesi ekipleri hizaya sokar:

  • Hakları ve kullanım sayaçlarını saklamak için bir yer seçin (arayüzde gösterim olsa bile)
  • Her yazma eyleminde kullanılan ortak bir "bunu yapabilir miyim?" kontrolü oluşturun
  • Hata mesajlarınızı ve kodlarınızı belirleyin ki UI tutarlı cevap versin
  • Her reddi plan, limit adı ve mevcut kullanım ile loglayın
  • Bir yönetici geçersiz kılma politikası ekleyin (kim atlayabilir ve nasıl denetlenir)

Limitlerinizi tek sayfada belgeleyin. Uygulama noktalarını (API uç noktası isimleri, arka plan job'ları ve UI ekranları) ve 2–3 kenar durumu örneğini ekleyin.

Atlama ve yarış durumları için test yapın

Sadece mutlu yol testlerine güvenmeyin. Ödeme duvarınızı kırmaya çalışan küçük bir test planı ekleyin: aynı anda iki kaynağı oluşturmaya çalışan paralel istekler, yeniden denemeler ve eskimiş istemciler, arayüzü atlayıp doğrudan API çağrıları.

AppMaster ile inşa ediyorsanız, plan limitlerini ve sayaçları doğrudan Data Designer içinde (PostgreSQL modeli) eşleyin, sonra kuralları Business Processes ve API uç noktalarında uygulayın ki web ve native mobil uygulamalar aynı mantığı kullansın. Bu ortak uygulama ödeme duvarlarını öngörülebilir kılar.

Son olarak, şimdi küçük bir prototiple deneyin: bir limit, bir yükseltme yolu ve bir taşan-limit mesajı. Deseni erken doğrulamak ve her yerde yeniden kullanmak sistemi sürdürülebilir tutar.

Başlaması kolay
Harika bir şey yaratın

Ücretsiz planla AppMaster ile denemeler yapın.
Hazır olduğunuzda uygun aboneliği seçebilirsiniz.

Başlayın