Django REST Framework Nedir?
Django REST Framework Kurulumu
pip install djangorestframework
Yukarıdaki komut, Django REST Framework'ü yükleyecektir. Yükleme işlemi tamamlandıktan sonra, bu kütüphaneyi kullanabilmek için Django ayarlarımıza dahil etmemiz gerekecek. settings.py dosyasını açın ve aşağıdaki gibi `INSTALLED_APPS` listesine `rest_framework` ekleyin:
INSTALLED_APPS = [
# Diğer uygulamalar
'rest_framework',
]
API Endpoint’lerini Oluşturma
Öncelikle, models.py dosyamıza `Book` modelini ekleyelim:
from django.db import models
class Book(models.Model):
title = models.CharField(max_length=100)
author = models.CharField(max_length=100)
published_date = models.DateField()
def __str__(self):
return self.title
Yukarıdaki modelde, bir kitabın başlığı, yazarı ve yayımlanma tarihi gibi bilgileri saklayacağız. Şimdi, bu modele ait bir API endpoint'i oluşturacağız.
Serializer ile Veri Dönüştürme
from rest_framework import serializers
from .models import Book
class BookSerializer(serializers.ModelSerializer):
class Meta:
model = Book
fields = '__all__'
Burada, `BookSerializer`, `Book` modelinden gelen verileri JSON formatına dönüştürecek bir serializer. `ModelSerializer`, Django’nun model sınıflarını kolayca seri hale getirmenin harika bir yoludur.
API Görünümleri (Views) Oluşturma
from rest_framework import generics
from .models import Book
from .serializers import BookSerializer
class BookListView(generics.ListCreateAPIView):
queryset = Book.objects.all()
serializer_class = BookSerializer
Burada, `BookListView`, kitapların bir listesini ve yeni bir kitap ekleme işlevini yerine getirecek. `ListCreateAPIView`, listelenmiş verileri gösterir ve aynı zamanda POST isteği ile veri eklenmesine olanak tanır.
URL’ler (URLs) ve Endpoint Oluşturma
from django.urls import path
from .views import BookListView
urlpatterns = [
path('books/', BookListView.as_view(), name='book-list'),
]
Bu URL, `/books/` endpoint’ini oluşturur. Artık `GET` ve `POST` istekleri ile kitap verilerini alabilir ve ekleyebilirsiniz.
API’yi Test Etme
Sonuç
Daha karmaşık projeler geliştirmek için DRF'nin sunduğu birçok başka özellik var. Mesela, kullanıcı doğrulama, izinler (permissions) ve token tabanlı kimlik doğrulama gibi ek özellikleri de kullanabilirsiniz. Unutmayın, her zaman test edin, hata ayıklayın ve yeni şeyler öğrenmeye devam edin.