Mobil Uygulama API: Çoğul (Duplicate) İstekler
Mobil uygulamalarda (iOS ve Android) belirli API uç noktalarına aynı anda veya çok kısa aralıklarla birden fazla istek gönderilmesi "duplicate (çoğul) istek" sorunudur. Bu durum sunucu yükünü artırır ve gereksiz veri transferine yol açar.
1. Çoğul İstek Türleri
| Tür | Açıklama |
|---|---|
| Tasarım Gereği Çoklu İstek | İlk isteğin döndürdüğü listedeki öğeler için yapılan ek isteklerdir. İçerikler birbirinden farklıdır. |
| Gerçek Duplicate | Aynı saniyede, aynı içerik ve boyutla gelen özdeş isteklerdir. Genellikle kod hatasıdır. |
2. Etkilenen Uç Nokta Türleri
Duplicate istekler en sık şu işlemlerde görülür:
- Ürün detay ve arama süreçleri
- Sepet sorgulama işlemleri
- Müşteri bilgisi ve profil sorgulama
- Oturum açma (Login) süreçleri
- Kategori ağacı yükleme
3. Tespit Yöntemi
Sunucu erişim loglarında aynı IP'den aynı saniyede gelen benzer istek çiftleri analiz edilir. İstek gövdeleri ve bayt boyutları karşılaştırılır. Gerçek duplicate'ler aynı içerik ve boyutla gelir; tasarım gereği olanlar farklı içerik taşır.
4. Çözüm Yaklaşımı
- Kontrol Mekanizması: İstek tetiklenmeden önce devam eden aynı isteğin kontrol edilmesi sağlanmalıdır.
- UI Önlemleri: Kullanıcı arayüzünde çift tıklamayı veya tekrar tetiklenmeyi önleyen mekanizmalar kurulmalıdır.
- Önbellekleme: İstek sonuçlarının uygulama tarafında kısa süreli önbelleğe alınması önerilir.
5. Beklenen Sonuç / Davranış
Düzeltme uygulandığında aynı endpoint'e özdeş duplicate istek gelmez. Sunucu yükü azalır; özellikle trafik yoğunluğu yüksek olan sistemlerde bu performans etkisi belirgin şekilde hissedilir.
6. Sık Sorulan Sorular
Bu sorun tüm kullanıcıları mı etkiliyor?
Evet. Mobil uygulama kod yapısı tüm kullanıcılar için aynı şekilde çalıştığından, sorun genele yayılmış bir durumdur.
Sunucu tarafında önlem alınabilir mi?
Rate limiting sunucu tarafında uygulanabilir ancak asıl düzeltme ve kalıcı çözüm istemci tarafında yapılmalıdır.
Bu sorun sipariş çiftlenmesine yol açar mı?
Evet. Yan etkisi olan (sipariş oluşturma, ödeme alma vb.) uç noktalarda tekilleştirme mekanizması kurulmamışsa mükerrer işlemlere yol açabilir.