Tartışma

FastAPI ile Kripto Fiyat Takip Botu Geliştirme: Rate Limit (HTTP) Engeli ve Axios Interceptor Kullanımı

Başlatan Celal · 28 Ağu 2026 09:26 · 1 Görüntülenme · 0 Yanıtlar
Konuyu Açan #0
Son yıllarda kripto para birimlerine olan ilgi patlama yaşadı ve birçok geliştirici, bu alanda projeler geliştirmeye başladı. Bu yazıda, FastAPI kullanarak basit bir kripto fiyat takip botu geliştireceğiz. Özellikle dikkat etmemiz gereken noktalar arasında HTTP rate limit engelleri ve Axios interceptor kullanımı yer alıyor.

Öncelikle, kripto fiyatlarını almak için genellikle RESTful API'lerden yararlanırız. Ancak, bu API'ler genellikle belirli bir süre içinde yalnızca sınırlı sayıda isteğe izin verir. Bu durumu aşmak için bazı stratejiler geliştirmemiz gerekiyor. İşte bu noktada rate limit yönetimi devreye giriyor. Rate limit, belirli bir zaman aralığında bir IP adresine veya kullanıcıya yapılabilecek istek sayısını sınırlar. FastAPI üzerinde, bu durumu yönetmek için çeşitli yöntemler kullanabiliriz.

  1. Rate Limit Yönetimi: FastAPI'de, slowapi kütüphanesini kullanarak rate limit uygulaması yapabiliriz. Bu kütüphane, belirli bir endpoint'e gelen istekleri kontrol eder ve limitlere ulaşıldığında kullanıcıyı bilgilendirir. Örneğin:

CODE
12345678910111213
   from fastapi import FastAPI
   from slowapi import Limiter
   from slowapi.util import get_remote_address

   app = FastAPI()
   limiter = Limiter(key_func=get_remote_address)

   @app.get("/crypto-price")
   @limiter.limit("5/minute")
   async def get_crypto_price():
       # API'den fiyat bilgisi al
       return {"price": "50000 USD"}
   


  1. Axios Interceptor Kullanımı: Frontend'de Axios kütüphanesini kullanarak HTTP istekleri yapabiliriz. Axios interceptor kullanarak, belirli durumlarda (örneğin rate limit hatası aldığımızda) istekleri yeniden deneyebiliriz. Örnek bir interceptor şu şekilde yazılabilir:

CODE
12345678910111213141516171819202122
   import axios from 'axios';

   const api = axios.create({
       baseURL: 'https://api.cryptocurrency.com',
   });

   api.interceptors.response.use(
       response => response,
       error => {
           if (error.response.status === 429) {
               // Rate limit hatası durumunda işlemleri tekrar dene
               // Örneğin, 1 saniye bekleyip tekrar isteği gönder
               return new Promise(resolve => {
                   setTimeout(() => {
                       resolve(api(error.config));
                   }, 1000);
               });
           }
           return Promise.reject(error);
       }
   );
   


Bu iki yaklaşım bir arada kullanıldığında, kripto fiyat takip botunuz hem hızlı hem de etkin bir şekilde çalışacaktır. Rate limit engellerini aşabilmek için doğru stratejileri geliştirmek, botunuzun performansını artıracaktır. Unutmayın ki, bu tür botların geliştirilmesi sırasında API kullanım koşullarına dikkat etmek oldukça önemlidir. Eğer uygulamanızda bu konularla ilgili başka yöntemler veya deneyimleriniz varsa, bunları paylaşabilirsiniz.

Yanıt vermek için giriş yapmış olmalısınız.

0 alıntı seçildi