Django REST Framework Nedir?
Django REST Framework, Django ile API geliştirmeyi çok daha kolay ve verimli hale getiren bir araçtır. Django'nun sağlam yapısı üzerine inşa edilen bu framework, özellikle RESTful API'ler geliştirmek için kullanılır. Yani, veritabanından veri alıp, bu veriyi kullanıcıya bir JSON formatında sunmanın yolunu açar.
API, yani Uygulama Programlama Arayüzü, farklı uygulamaların birbirleriyle iletişim kurmasını sağlar. Örneğin, bir mobil uygulama, Django tabanlı bir web sitesinin API’si ile haberleşir. Bu sayede veri alışverişi yapılabilir. DRF, Django’nun yeteneklerini API geliştirme konusunda açığa çıkaran harika bir yardımcıdır.
Proje Kurulumu
Django REST Framework kullanmaya başlamak için ilk adım, Django projesi kurmaktır. Eğer Django hakkında bilgin yoksa, sana kısaca hatırlatayım:
1. Python yüklü değilse, https://www.python.org/downloads/ adresinden Python’u indir ve kur.
2. Terminal veya komut satırını aç ve aşağıdaki komutu çalıştırarak Django'yu kur:
pip install django
3. Şimdi yeni bir Django projesi oluşturuyoruz:
django-admin startproject api_project
4. Projeyi çalıştırmak için şu komutu ver:
cd api_project
python manage.py runserver
Artık projen hazır! Ancak, DRF’yi kurmamız lazım. Şimdi, Django REST Framework’ü kurma adımına geçelim:
pip install djangorestframework
API Görünümleri Oluşturmak
Artık DRF kuruldu ve hazır. Şimdi bir API görünümü (view) oluşturmaya başlayalım. Django'da, verileri nasıl göstereceğimizi belirleyen birkaç farklı görünüm türü vardır. En basit olanı ise APIView'dir.
Öncelikle, Django’nun "views.py" dosyasına gidiyoruz ve bir API görünümü ekliyoruz. Şu şekilde:
from rest_framework.views import APIView
from rest_framework.response import Response
class HelloWorld(APIView):
def get(self, request):
return Response({"message": "Merhaba, Django REST Framework!"})
Bu kod, "GET" isteğiyle gelen bir istek üzerine "Merhaba, Django REST Framework!" mesajını dönecek bir API oluşturuyor.
URL Yapısı ve Routing
Şimdi bu API'yi bir URL ile bağlamamız gerekiyor. Django'da, URL yönlendirmelerini urls.py dosyasına ekliyoruz.
Öncelikle, urls.py dosyasını açıyoruz ve şöyle bir yol ekliyoruz:
from django.urls import path
from .views import HelloWorld
urlpatterns = [
path('hello/', HelloWorld.as_view(), name='hello_world'),
]
Artık "http://127.0.0.1:8000/hello/" adresine gittiğinizde, "Merhaba, Django REST Framework!" mesajını göreceksiniz.
Serializer Nedir ve Neden Kullanılır?
Veri serileştirme, Django REST Framework ile çalışırken çok önemli bir adımdır. Serileştirme, Python objelerini JSON formatına dönüştürmeyi sağlar. Bu sayede, API'nizden dönen veriler düzenli ve anlaşılır olur.
Diyelim ki bir kullanıcı modelimiz var ve bu modelin verilerini API üzerinden göndereceğiz. O zaman bir serializer sınıfı yazmamız gerekiyor. İşte bunun nasıl yapılacağı:
from rest_framework import serializers
from .models import User
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = '__all__'
Bu serializer sınıfı, User modelini serileştirir ve API üzerinden JSON formatında döner.
CRUD İşlemleri ile API Geliştirme
Şimdi daha derinlemesine bir şeyler yapalım. Django REST Framework ile CRUD (Create, Read, Update, Delete) işlemleri gerçekleştirebiliriz.
Örneğin, kullanıcıların bilgilerini ekleyebileceğimiz, görüntüleyebileceğimiz, güncelleyebileceğimiz ve silebileceğimiz bir API yapalım:
from rest_framework import viewsets
from .models import User
from .serializers import UserSerializer
class UserViewSet(viewsets.ModelViewSet):
queryset = User.objects.all()
serializer_class = UserSerializer
Bu kod, kullanıcıları listelemenin yanı sıra yeni kullanıcılar oluşturma, var olanları güncelleme ve silme işlemleri yapmamızı sağlar. Şimdi bu görünümü URL'lere bağlamamız gerekiyor.
from rest_framework.routers import DefaultRouter
from .views import UserViewSet
router = DefaultRouter()
router.register(r'users', UserViewSet)
urlpatterns = router.urls
İşte bu kadar! Artık "users" URL'si altında CRUD işlemlerini gerçekleştirebileceğimiz tam donanımlı bir API'ye sahip olduk.
Sonuç
Django REST Framework, Django ile API geliştirmeyi gerçekten kolaylaştırıyor. İster basit bir API oluşturuyor ol, ister karmaşık işlemler yapmak istiyor ol, DRF her zaman yanınızda. Projeni kurduktan sonra serileştirme, görünüm ve URL yönetimini öğrenmek, API geliştirme işini çok daha eğlenceli hale getiriyor.
Unutma, her zaman daha fazla şey öğrenebilir ve projene yeni özellikler ekleyebilirsin. Geliştirdiğin API ile kullanıcılarına ne kadar kolay erişim sağlarsan, kullanıcı deneyimini o kadar iyileştirmiş olursun. Şimdi sen de kendi API'lerini yaratma yolunda bir adım daha attın. İyi çalışmalar!