Başlangıç: Django Projesi Kurulumu
İlk adım, Django projesi oluşturmaktır. Eğer halihazırda bir Django projesi yoksa, terminal üzerinden aşağıdaki komutla yeni bir proje oluşturabilirsiniz:
django-admin startproject myproject
Projenizi oluşturduktan sonra, uygulamanızı da oluşturmanız gerekiyor. Diyelim ki bir “Blog” uygulaması geliştireceksiniz. Hadi, terminalden:
python manage.py startapp blog
Bu komut ile `blog` adında bir uygulama oluşturmuş olduk.
Adım 1: Django REST Framework’ü Kurma
Şimdi sıra, Django REST Framework'ü projeye dahil etmeye geldi. Proje dizininizde terminali açarak şu komutu çalıştırın:
pip install djangorestframework
Kurulum tamamlandığında, `INSTALLED_APPS` listesine `rest_framework`’ü eklemelisiniz. `settings.py` dosyasını açın ve aşağıdaki satırı ekleyin:
INSTALLED_APPS = [
# Diğer uygulamalar...
'rest_framework',
]
Adım 2: Model Oluşturma
Artık Django’nun güçlü veritabanı yönetim sistemini kullanarak blog yazıları için bir model oluşturalım. `blog/models.py` dosyasını açın ve aşağıdaki kodu yazın:
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.title
Bu model, her blog yazısının başlığını, içeriğini ve oluşturulma zamanını saklar. Şimdi veritabanını güncellemek için aşağıdaki komutları çalıştırın:
python manage.py makemigrations
python manage.py migrate
Adım 3: Serializer Oluşturma
Django REST Framework, veritabanı modellerinizi JSON formatında sunmak için bir `Serializer` kullanır. Şimdi, blog yazıları modelimiz için bir serializer oluşturalım. `blog/serializers.py` dosyasını açın ve şu kodu yazın:
from rest_framework import serializers
from .models import Post
class PostSerializer(serializers.ModelSerializer):
class Meta:
model = Post
fields = ['id', 'title', 'content', 'created_at']
Bu serializer, Post modelindeki verileri alacak ve JSON formatında dışa aktaracaktır.
Adım 4: API Görünümü (Views) Oluşturma
API'yi oluşturmanın bir sonraki adımı, Django’nun görünümlerini (views) kullanarak yazılarımızı listelemek ve detaylarını almak olacak. `blog/views.py` dosyasını açın ve aşağıdaki kodu ekleyin:
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status
from .models import Post
from .serializers import PostSerializer
class PostList(APIView):
def get(self, request):
posts = Post.objects.all()
serializer = PostSerializer(posts, many=True)
return Response(serializer.data)
class PostDetail(APIView):
def get(self, request, pk):
try:
post = Post.objects.get(pk=pk)
except Post.DoesNotExist:
return Response({'error': 'Post not found'}, status=status.HTTP_404_NOT_FOUND)
serializer = PostSerializer(post)
return Response(serializer.data)
Bu görünümler, blog yazılarını listeleyen ve tekil bir yazıyı detaylı gösteren API'ler olacak.
Adım 5: URL'ler ve Yönlendirme
Şimdi sıra, yazılarımıza ulaşabilmek için URL’leri eklemekte. `blog/urls.py` dosyasını açın ve aşağıdaki gibi yapılandırın:
from django.urls import path
from .views import PostList, PostDetail
urlpatterns = [
path('posts/', PostList.as_view(), name='post_list'),
path('posts//', PostDetail.as_view(), name='post_detail'),
]
Son olarak, `myproject/urls.py` dosyasına aşağıdaki satırı ekleyerek bu URL’leri ana projeye dahil edin:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('api/', include('blog.urls')),
]
Adım 6: API Test Etme
Şimdi API'yi test edebiliriz. Sunucuyu çalıştırmak için şu komutu girin:
python manage.py runserver
Tarayıcınızda `http://127.0.0.1:8000/api/posts/` adresine giderek blog yazılarının listesini görebilirsiniz. Ayrıca, `http://127.0.0.1:8000/api/posts/1/` gibi bir URL ile bir yazının detaylarına da ulaşabilirsiniz.
Sonuç
Ve işte karşınızda! Django REST Framework ile hızlıca bir API geliştirdiniz. Şimdi projelerinizi hızlıca büyütebilir, daha fazla özellik ekleyerek kullanıcılarınızla etkileşime geçebilirsiniz. Django’nun esnekliği ve DRF’nin gücüyle API geliştirme süreci hiç olmadığı kadar kolay hale geliyor.
Unutmayın, DRF sadece güçlü değil, aynı zamanda çok esnektir. İlerleyen zamanlarda daha karmaşık özellikler eklemek, kullanıcı doğrulama işlemleri yapmak veya daha gelişmiş filtrelemeler gerçekleştirmek oldukça kolay.