Django REST Framework Nedir?
Bir gün, bir yazılımcı arkadaşım bana bir proje için API geliştirmemi istedi. "Tabii, Django'yu seviyorum, ama REST API nedir?" dedim. Arkadaşım gülümsedi ve Django REST Framework (DRF) ile tanışmamı önerdi. O an bir keşif başladı ve DRF ile tanıştıktan sonra projeyi ne kadar kolayca geliştirdiğimi şaşırarak fark ettim. Peki, Django REST Framework nedir ve nasıl kullanılır? Hadi gelin, adım adım bakalım.
Django REST Framework, Django ile RESTful API'ler oluşturmanıza olanak sağlayan güçlü bir kütüphanedir. Django'nun sunduğu güçlü özelliklere, API geliştirmeyi kolaylaştıran araçlar ekler. API’ler sayesinde, farklı sistemler arasında veri paylaşımı yapabilir, uygulamanızı daha esnek hale getirebilirsiniz.
Başlangıç: Django Projesi Kurma
Başlamak için öncelikle bir Django projesi kurmamız gerekiyor. Eğer Django’yu bilgisayarınızda kurulu değilse, terminal veya komut satırında şu komutu kullanarak yükleyebilirsiniz:
pip install django
Django’yu yükledikten sonra yeni bir proje başlatalım:
django-admin startproject myproject
cd myproject
Şimdi Django’nun temel yapısını oluşturduk. Ancak API geliştirmek için Django REST Framework’e de ihtiyacımız var. Onu da yüklemek için şu komutu çalıştıracağız:
pip install djangorestframework
Ve işte, Django REST Framework projemize dahil oldu. Ancak bu adım sadece başlangıç!
Django REST Framework ile API Oluşturmak
API geliştirmeye başlamak için önce Django’daki uygulama yapısını kullanacağız. Yeni bir uygulama (app) oluşturmak için şu komutu çalıştırıyoruz:
python manage.py startapp api
Bu komutla “api” adında bir uygulama oluşturduk. Şimdi, API’miz için gerekli olan modelleri ve serializer’ları oluşturmaya başlıyoruz.
Modeli Tanımlama
Öncelikle basit bir model oluşturalım. Diyelim ki, kullanıcıların blog yazılarını sakladığımız bir API yapacağız. Bu yüzden bir `Post` modeline ihtiyacımız olacak. `models.py` dosyamıza şu kodu ekleyelim:
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, kullanıcıların blog yazılarını saklamak için yeterli olacaktır. Şimdi, modeli veritabanımıza yansıtmak için migrations işlemini yapmamız gerekiyor:
python manage.py makemigrations
python manage.py migrate
Serializer ile Veriyi JSON Formatına Dönüştürme
API'de veriyi JSON formatında alıp göndereceğimiz için, verileri JSON’a dönüştürmek için bir serializer kullanmamız gerekiyor. `api` uygulamasındaki `serializers.py` dosyasını oluşturuyoruz ve şu şekilde düzenliyoruz:
from rest_framework import serializers
from .models import Post
class PostSerializer(serializers.ModelSerializer):
class Meta:
model = Post
fields = '__all__'
Bu serializer, `Post` modelindeki verileri JSON formatına dönüştürecek. Artık API’mizle kullanıcıları bilgilendirebiliriz!
ViewSet ile API'yi Yönlendirme
Şimdi ise API'yi kullanabileceğimiz bir view oluşturacağız. Bunun için Django REST Framework’ün sunduğu `ViewSet` sınıfını kullanacağız. `views.py` dosyasına şu kodu ekleyelim:
from rest_framework import viewsets
from .models import Post
from .serializers import PostSerializer
class PostViewSet(viewsets.ModelViewSet):
queryset = Post.objects.all()
serializer_class = PostSerializer
Bu view, tüm `Post` verilerini döndürecek ve ayrıca verileri ekleme, silme, güncelleme işlemlerini de yapabileceğiz.
URL Yönlendirmelerini Yapma
Artık API’miz hazır ama kullanıcılar API’mize nasıl erişecek? Bunun için URL yönlendirmeleri yapmamız gerekiyor. `urls.py` dosyasına şu satırı ekleyelim:
from django.urls import path, include
from rest_framework.routers import DefaultRouter
from .views import PostViewSet
router = DefaultRouter()
router.register(r'posts', PostViewSet)
urlpatterns = [
path('', include(router.urls)),
]
Bu kod, API’mizi `/posts/` yoluyla erişilebilir kılacak.
Son Adım: Sunucuyu Çalıştırma
Her şey hazır! Şimdi terminalden şu komutu çalıştırarak sunucumuzu başlatıyoruz:
python manage.py runserver
Artık API’miz çalışıyor! Tarayıcıda `http://127.0.0.1:8000/posts/` adresine giderek blog yazılarına erişebilirsiniz.
Sonuç
Django REST Framework, güçlü ve esnek bir kütüphane olup API geliştirmeyi oldukça kolaylaştırır. Az önce öğrendiğimiz adımları takip ederek basit bir API oluşturdunuz. Bundan sonra, bu temel yapı üzerinde farklı özellikler ekleyerek API’nizi geliştirebilirsiniz. Django ile API geliştirmek hiç bu kadar kolay olmamıştı!