PHP API Pagination Kurulumu

0 Yanıt 0 Görüntülenme
·
Katılımcılar
Konuyu Açan #1
Giriş ve Temel Kavramlar
API geliştirmelerinde kullanıcı deneyimini optimize etmek ve veri transferini hafifletmek adına pagination (sayfalandırma) yöntemi kritik bir rol oynar. Pagination, büyük veri setlerini parçalara ayırarak, her seferinde sadece belirli bir veri dilimini sunmayı sağlar. Bu sayede hem performans artar hem de istemci tarafında gereksiz yüklenmeler önlenir.

Temel Yapı ve Mantık
Bir API’de pagination genellikle iki parametre ile kontrol edilir: page ve limit. limit, her sayfada gösterilecek kayıt sayısını belirlerken, page ise hangi sayfanın istenildiğini gösterir. Örneğin, limit=10 ve page=2 ise, 11. ile 20. arasındaki kayıtlar alınır.
Veritabanı sorgusu ise şu şekilde optimize edilir:
KOD
12  
SELECT * FROM tablo_adi LIMIT {limit} OFFSET {(page - 1) * limit}  


Bu yapıyı PHP’de şu örnekle uygulayabiliriz:
KOD
12345678910111213  
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;  
$limit = isset($_GET['limit']) ? (int)$_GET['limit'] : 10;  
$offset = ($page - 1) * $limit;  
  
// PDO veya mysqli ile sorgu örneği  
$query = "SELECT * FROM tablo_adi LIMIT :limit OFFSET :offset";  
$stmt = $pdo->prepare($query);  
$stmt->bindParam(':limit', $limit, PDO::PARAM_INT);  
$stmt->bindParam(':offset', $offset, PDO::PARAM_INT);  
$stmt->execute();  
  
$veriler = $stmt->fetchAll(PDO::FETCH_ASSOC);  

Burada dikkat edilmesi gereken nokta, page ve limit parametrelerinin kontrol edilerek, güvenli ve hatasız çalışmasının sağlanmasıdır.

Ekstra Bilgiler ve En İyi Uygulamalar
  • Toplam kayıt sayısını API’de döndürmek, istemciye toplam sayfa sayısı veya kalan kayıtlar hakkında bilgi verir.
  • Sayfa sınırlarını aşmamak için page parametresini sınırlandırmak veya varsayılan değerler belirlemek iyi bir uygulamadır.
  • Çok büyük datasetlerde offset yerine, ID bazlı pagination kullanmak performansı artırabilir. Örneğin, son kaydın ID’sini kullanarak sonraki veriyi almak.


Sonuç olarak, PHP tabanlı API’lerde pagination, hem kullanıcı deneyimini iyileştirir hem de sunucu performansını optimize eder. Bu yapıyı uygularken, güvenlik, performans ve kullanıcı deneyimini göz önünde bulundurmak gerekir.

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

Bu konuyu görüntüleyen kullanıcılar (Toplam: 5, Üyeler: 5, Misafirler: 0)
Toplam: 5 (üyeler: 5, misafirler: 0)
0 alıntı seçildi