API (aktif ilaç bileşeni) tedarikçisi olarak, API hizmetlerimizin istikrarını ve güvenliğini sağlamak son derece önemlidir. Güvenilir bir API ortamının sürdürülmesinin önemli bir yönü API oranı sınırlaması uygulamaktır. Bu blog yazısında, API tedarik endüstrisindeki deneyimlerimize dayanarak API oran sınırlamasının nasıl etkili bir şekilde uygulanacağı hakkında bazı bilgiler paylaşacağım.
API oranını sınırlama ihtiyacını anlamak
Uygulama ayrıntılarına girmeden önce, API oran sınırlamasının neden gerekli olduğunu anlamak önemlidir. API tedarik işinde, API'lerimize farklı amaçlarla erişen çeşitli müşterilerle ilgileniyoruz. API'larımıza sınırsız erişim, kaynak tükenmesi, güvenlik açıkları ve haksız kullanım gibi çeşitli sorunlara yol açabilir.
Örneğin, tek bir istemci kısa bir süre içinde aşırı sayıda istek yaparsa, diğer istemcilerin performansını etkileyen önemli miktarda sunucu kaynağımız tüketebilir. Dahası, kötü niyetli aktörler, API'lerimizi aşırı yüklemek için kaba kuvvet tekniklerini kullanabilir ve bu da hizmet kesintilerine yol açabilir. Oran sınırlama, bir müşterinin belirli bir zaman dilimi içinde yapabileceği istek sayısını kontrol ederek bu riskleri yönetmemize yardımcı olur.
API oranı sınırlama türleri
Her biri kendi avantajları ve kullanım durumları olan uygulayabileceğimiz çeşitli API oranı sınırları vardır.


Zamana dayalı oran sınırlama
Bu, bir müşterinin saniyede, dakikada, saat başına veya günde gibi belirli bir süre içinde yapabileceği istek sayısını bir sınır belirlediğimiz en yaygın oran sınırlama türüdür. Örneğin, bir müşterinin dakikada en fazla 100 istekte bulunmasına izin verebiliriz. Bir müşteri bu sınırı aşarsa, sonraki talepler engellenir veya kısalır.
Jeton - Kova Algoritması
Token - kova algoritması, hız sınırlamasına daha karmaşık bir yaklaşımdır. Belli sayıda jeton tutabilen bir kova hayal edin. Bir müşteri her talepte bulunduğunda, kovadan bir jeton kaldırılır. Jetonlar sabit bir oranda yenilenir. Kova boşsa, yeni jetonlar eklenene kadar müşteri daha fazla istekte bulunamaz. Bu algoritma, genel istek oranı sınır içinde kaldığı sürece kısa vadeli talep patlamalarına izin verir.
Sızdıran kova algoritması
Token - kova algoritmasına benzer şekilde, sızdıran kova algoritması da istek oranını kontrol eder. Bu durumda, istekler bir kovaya akan su gibidir ve kovanın alt kısmında suyun (istekler) sabit bir oranda sızdığı küçük bir deliği vardır. Gelen istek oranı, taleplerin işlenebilme oranını (sızıntı oranı) aşarsa, fazla istekler sıraya alınır veya düşürülür.
API oranının sınırlandırılması uygulama
Şimdi, uygulamada API oran sınırlamasını nasıl uygulayabileceğimizi tartışalım.
Sunucu - Yan Uygulama
API oranı sınırlamasının çoğu sunucu tarafında yapılır. Oran sınırlarını zorlamak için API sunucularımızda ara katman yazılımı kullanabiliriz. Örneğin, Express.js kullanarak bir Node.js uygulamasında,Express - Oran - Sınırara katman yazılımı.
const ratelimit = requir ('ekspres - oran - limit'); const apiliMiter = ratelimit ({pencereler: 60 * 1000, // 1 dakika maks: 100, // Her IP'yi pencere başına 100 istekle sınırlayın: 'Çok fazla istek, lütfen daha sonra tekrar deneyin.'}); App.use ('/API', apilimiter);
Flask kullanan bir Python uygulamasında, oran sınırlama uygulayabiliriz.Şişe - Sınırlayıcıeklenti.
Flask_Limiter.util'den Flask_Limiter ithalat sınırlayıcısından şişe ithalat şişesi Get_remote_address app = flask (__ name__) sınırlayıcı = sınırlayıcı (APP, Key_func = get_remote_address, despor_limits = ["dakika başına 100 dakika") @app.route ( @ @app.route ( @ @app.route " @ @ @ @ @ @ @" "" "" "" "" "" "Bu bir API uç noktası."
Müşteri - Yan Hedefler
Oran sınırlamasının çoğu sunucu tarafı olmasına rağmen, istemciler oran sınırlarına saygı göstermede de rol oynayabilir. Müşteriler, gereksiz isteklerin sayısını azaltmak için önbellekleme mekanizmaları uygulayabilir. Örneğin, bir istemci bir API listesi isterse ve liste sık sık değişmezse, istemci her seferinde yeni bir istek yapmak yerine yanıtı önbelleğe alabilir ve yeniden kullanabilir.
Hız sınırlarını izleme ve ayarlama
Oran sınırlarının uygulanması bir zaman görevi değildir. API'lerimizin kullanımını sürekli olarak izlememiz ve oran sınırlarını gerektiği gibi ayarlamamız gerekir. Her müşteri tarafından yapılan istek sayısını, isteklerin başarısı ve başarısızlık oranlarını ve sunucularımızın genel kaynak kullanımını izlemek için izleme araçlarını kullanabiliriz.
Belirli bir müşterinin sürekli olarak oran sınırına çarptığını ve API'larımızı meşru kullanımlarını etkilediğini fark edersek, oran sınırlarını artırmayı düşünebiliriz. Öte yandan, bazı müşterilerin geçerli bir neden olmadan aşırı istekler yaptığını fark edersek, oran sınırlarını düşürebilir veya erişimlerini engelleme gibi daha fazla işlem yapabiliriz.
API tedarikinde kullanma durumları
API tedarik işinde, oran sınırlama farklı senaryolarda uygulanabilir. Örneğin, müşteriler bizim hakkımızla ilgili bilgilere erişirkenÜst sınıf L - Ornitin 2 - Oxoglutarat, 5144 - 42 - 3, C10H18N2O7-Kaliteli Albendazole, CAS: 54965 - 21 - 8, C12H15N3O2S, veyaÜst sınıf rifamisin sodyum, CAS: 14897 - 39 - 3, GMP Standardı, oran sınırlama, tüm müşterilerin bilgilere adil erişime sahip olmasını sağlar.
Bazı müşteriler API'lerimizi gerçek zaman envanter kontrolleri için kullanıyor olabilirken, diğerleri geçmiş verileri alıyor olabilir. Uygun oran sınırlarını uygulayarak, API performansının her türlü müşteri için sabit kalmasını sağlayabiliriz.
Çözüm
API oranı sınırlamasının uygulanması, API tedarik işimiz için istikrarlı ve güvenli bir API ortamının korunmasında önemli bir adımdır. Farklı oran sınırlama türlerini anlayarak, bunları sunucu - tarafta etkili bir şekilde uygulayarak, istemci tarafı optimizasyonlarını göz önünde bulundurarak ve sınırları sürekli olarak izleyerek ve API'lerimizin adil ve verimli bir şekilde kullanılmasını sağlayabiliriz.
API'lerimizi satın almakla ilgileniyorsanız veya API hizmetlerimiz hakkında herhangi bir sorunuz varsa, daha fazla tartışma için lütfen bizimle iletişime geçmekten çekinmeyin. Yüksek kaliteli API'ler ve mükemmel müşteri hizmeti sunmaya kararlıyız.
Referanslar
- "Güvenli ve güvenilir API'ler oluşturmak." O'Reilly Medya.
- "Express.js belgeleri." Express.js resmi web sitesi.
- "Flask Belgeleri." Flask resmi web sitesi.
