Django REST Framework Nedir?
Django REST Framework, Django ile uyumlu bir kütüphane olup, REST API'lerini kolayca oluşturmanı sağlar. Kendi uygulamanı geliştirirken bir API'nin nasıl oluşturulması gerektiği konusunda hiç kafanı yormadan bu güçlü araçla hızlıca API'ler oluşturabilirsin.
Django REST Framework Kurulumu
pip install djangorestframework
Kurulum tamamlandıktan sonra, Django projenin `settings.py` dosyasına gidip `INSTALLED_APPS` kısmına aşağıdaki satırı eklemen yeterli olacak:
INSTALLED_APPS = [
# Diğer uygulamalar
'rest_framework',
]
Bu kadar! Şimdi Django REST Framework ile API oluşturmak için gerekli her şeye sahipsin.
API Görünümü (View) Oluşturma
Önce `models.py` dosyasına gidip aşağıdaki gibi bir model oluşturalım:
from django.db import models
class Book(models.Model):
title = models.CharField(max_length=200)
author = models.CharField(max_length=200)
published_date = models.DateField()
def __str__(self):
return self.title
Modelimizi oluşturduktan sonra, bu modelin verilerini API üzerinden göstermek için bir serializer’a ihtiyacımız olacak. Serializer, Django modellerini JSON formatına dönüştürmemizi sağlar. Bunu `serializers.py` dosyasına yazabiliriz:
from rest_framework import serializers
from .models import Book
class BookSerializer(serializers.ModelSerializer):
class Meta:
model = Book
fields = '__all__'
Serializer’ı oluşturduktan sonra, `views.py` dosyasına gidip bir API view oluşturalım. Burada DRF'nin sunduğu `APIView` sınıfını kullanacağız:
from rest_framework.views import APIView
from rest_framework.response import Response
from .models import Book
from .serializers import BookSerializer
class BookList(APIView):
def get(self, request):
books = Book.objects.all()
serializer = BookSerializer(books, many=True)
return Response(serializer.data)
Burada, `BookList` sınıfı `GET` isteklerini karşılayacak ve tüm kitapları JSON formatında döndürecek. Son olarak, URL’yi yapılandırmak için `urls.py` dosyasına aşağıdaki satırı ekliyoruz:
from django.urls import path
from .views import BookList
urlpatterns = [
path('books/', BookList.as_view(), name='book-list'),
]
Şimdi, `http://localhost:8000/books/` adresine gittiğinde, tüm kitapların JSON formatında verilerini görebileceksin!
API Güvenliği
Örneğin, sadece giriş yapmış kullanıcıların API'ye erişebilmesi için şu şekilde bir güvenlik ekleyebiliriz:
from rest_framework.permissions import IsAuthenticated
class BookList(APIView):
permission_classes = [IsAuthenticated]
def get(self, request):
books = Book.objects.all()
serializer = BookSerializer(books, many=True)
return Response(serializer.data)
Bu şekilde, yalnızca kimlik doğrulaması yapılmış kullanıcılar API verilerine erişebilir.
API Hızlandırma
Django REST Framework, sayfalama işlemini kolayca yapmanı sağlar. `settings.py` dosyasına şu satırı eklemen yeterli olacak:
REST_FRAMEWORK = {
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
'PAGE_SIZE': 10,
}
Bu ayar ile API çağrılarında sadece 10 veri gösterilecek ve sayfalama desteği devreye girecektir.
Sonuç
Unutma, Django REST Framework ile API'lerin ne kadar güçlü ve esnek olabileceğini keşfettikçe, bu araç sana çok daha fazlasını sunacak. Şimdi, elindeki bu bilgileri projelerine uygulamaya başla ve harika API'ler yarat!