Django REST Framework Pagination ve Filtering
Django REST Framework Pagination ve Filtering
Django REST Framework (DRF), Python dünyasında hızlı ve güvenilir API servisleri oluşturmak için en popüler araçların başında gelir. API performansı ve son kullanıcı deneyimi açısından "pagination" (sayfalama) ve "filtering" (filtreleme) gibi özellikler oldukça önemlidir. Bu makalede, Django REST Framework Pagination ve Filtering yapılarını ayrıntılı şekilde ele alacağız.
Pagination (Sayfalama) Mantığı
Büyük veri kümelerini tek bir API çağrısında istemcilere sunmak, performans sorunlarına ve gereksiz veri trafiğine yol açar. DRF ile "pagination" kullanarak yanıtları sayfa sayfa bölebilir, her istekte belli sayıda veri gönderebilirsiniz.
Basit Pagination Kullanımı
# settings.py dosyanıza ekleyin
REST_FRAMEWORK = {
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
'PAGE_SIZE': 10,
}
Bu ayarlar ile API'ye yapılan istekte yalnızca 10 kayıt dönülür ve sonraki kayıtlar için otomatik olarak sayfa bağlantıları sağlanır.
Filtering (Filtreleme) Yöntemleri
API kullanıcılarının, detaylı arama ve veri çekebilmesi için Filtering (filtreleme) desteği gereklidir. Django REST Framework, django-filter paketini entegre ederek güçlü filtreleme fonksiyonları sunar.
django-filter ile Temel Filtreleme
# views.py
from django_filters.rest_framework import DjangoFilterBackend
from rest_framework import viewsets
from .models import Product
from .serializers import ProductSerializer
class ProductViewSet(viewsets.ModelViewSet):
queryset = Product.objects.all()
serializer_class = ProductSerializer
filter_backends = [DjangoFilterBackend]
filterset_fields = ['category', 'price']
Bu örnekte "category" ve "price" alanlarına göre filtreleme yapılabilir. Örneğin, /api/products/?category=elektronik&price=1500 isteği ile filtrelenmiş sonuçlara ulaşabilirsiniz.
Pagnation ve Filtering Birlikte
Django REST Framework Pagination ve Filtering özelliklerini bir arada kullanarak hem hızlı hem kullanışlı API'ler geliştirebilirsiniz. İki özellik, performans kaybını en aza indirirken, kullanıcılarınız için özelleştirilebilir ve yönetilebilir veri sunar.
Sonuç
Django REST Framework Pagination ve Filtering, modern ve büyük ölçekli API projelerinde olmazsa olmaz işlevlerdir. Kullanıcı deneyimini artırmak, sunucu yükünü azaltmak ve verimliliği artırmak için bu yapıların doğru şekilde uygulanması gerekir. Projelerinizde pagination ve filtering'i kullanarak, yönetilebilir ve sürdürülebilir API çözümleri sunabilirsiniz.

Yorum Gönder