Django REST Framework Nedir?
Django ve Django REST Framework Kurulumu
Öncelikle Python ortamınızda Django'yu ve DRF'yi kurmanız gerekecek. Eğer henüz Python ve pip'i yüklemediyseniz, ilk adım olarak bunları yüklemeniz lazım. Terminal veya komut satırınızı açın ve aşağıdaki komutları girin:
pip install django
pip install djangorestframework
Bu işlem tamamlandığında, projenizi oluşturabilirsiniz. Yeni bir Django projesi başlatmak için aşağıdaki komutu girin:
django-admin startproject myproject
Şimdi proje dizinine gidip Django'yu başlatabiliriz:
cd myproject
python manage.py runserver
Projeniz çalışmaya başladığında, tarayıcınızda `http://127.0.0.1:8000/` adresine giderek Django’nun varsayılan sayfasını görebilirsiniz.
Django REST Framework'i Projeye Dahil Etmek
INSTALLED_APPS = [
# Diğer uygulamalar
'rest_framework',
]
Bu sayede DRF, projede kullanılabilir hale gelecektir.
İlk API Görünümünüzü Oluşturma
Örneğin, basit bir model oluşturalım:
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
Burada `Book` modelini oluşturduk. Bu modelde bir kitabın başlığı, yazarı ve yayımlandığı tarih bilgilerini saklayacağız. Modeli oluşturduktan sonra, veritabanınızı güncellemeyi unutmayın:
python manage.py makemigrations
python manage.py migrate
Şimdi, bu model için bir serializer sınıfı oluşturalım. Serializer, verileri JSON formatına dönüştürmek için kullanılır.
from rest_framework import serializers
from .models import Book
class BookSerializer(serializers.ModelSerializer):
class Meta:
model = Book
fields = '__all__'
Sonrasında, verileri sunmak için bir API view (görünüm) ekleyeceğiz. Bu görünüm, kullanıcıların kitap listesine erişebilmesini sağlayacak.
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` görünümü ile tüm kitapları veritabanından çekiyoruz ve bunları JSON formatında döndürüyoruz.
API’yi URL’ye Bağlama
from django.urls import path
from .views import BookList
urlpatterns = [
path('api/books/', BookList.as_view(), name='book-list'),
]
Bu işlemle birlikte, artık `http://127.0.0.1:8000/api/books/` adresine gittiğinizde, kitaplarınızın bir listesini JSON formatında görebileceksiniz.
API’ye Veri Gönderme (POST Yöntemi)
class BookList(APIView):
def get(self, request):
books = Book.objects.all()
serializer = BookSerializer(books, many=True)
return Response(serializer.data)
def post(self, request):
serializer = BookSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=201)
return Response(serializer.errors, status=400)
Artık, `POST` isteğiyle kitap ekleyebilirsiniz. Bunun için bir API istemcisi (örneğin Postman) kullanarak JSON verilerini gönderebilirsiniz.
Sonuç
Umarım bu rehber sizin için faydalı olmuştur. Django ile API geliştirme serüveninize başlamak için bu temel adımları takip edebilirsiniz. Her zaman daha fazlasını öğrenmek ve geliştirmek için yeni projeler yaratmaya devam edin!