1. Django REST Framework Nedir?
Django REST Framework, Django için geliştirilmiş, RESTful API'ler oluşturmanıza olanak tanıyan bir kütüphanedir. Bu kütüphane sayesinde, veritabanınızla kolayca etkileşime giren, verileri JSON veya XML formatında dönen bir API oluşturabilirsiniz. Django’nun sunduğu esneklik ve güçlü admin panelinin yanında, DRF de size bir API oluşturmanın kolay ve hızlı yollarını sunar.
2. Django REST Framework'ü Projeye Dahil Etme
Başlamak için, öncelikle Django projenize DRF'yi dahil etmeniz gerekiyor. Bunu yapmak için terminal üzerinden şu komutu çalıştırabilirsiniz:
kopyalapip install djangorestframework
Bu komut, DRF'yi proje ortamınıza yükleyecektir. Şimdi, bu kütüphaneyi Django projenize dahil edelim. Bunun için `settings.py` dosyanıza gidip, `INSTALLED_APPS` listesine şu satırı ekleyin:
kopyala'rest_framework',
Artık Django projeniz DRF'yi tanıyacak ve API geliştirmeye hazır!
3. İlk API Endpoint'inizi Oluşturun
Şimdi de DRF kullanarak basit bir API endpoint'i oluşturalım. Örneğin, bir blog uygulaması için blog yazılarını listelemek isteyelim. İlk olarak bir model oluşturmak gerekiyor.
Django'nun `models.py` dosyasına şu modeli ekleyelim:
kopyalafrom 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
Burada, her yazı için bir başlık, içerik ve oluşturulma zamanı belirledik. Şimdi bu modeli veritabanına eklemek için terminalden şu komutları çalıştıralım:
kopyalapython manage.py makemigrations python manage.py migrate
Modelimiz hazır! Şimdi bu model için bir API endpoint’i oluşturacağız.
4. Serializer Oluşturma
Django REST Framework’te veritabanı modelleri ile API arasındaki bağlantıyı sağlayan araçlara "serializer" denir. Serializer, veritabanı modelinizi JSON formatında temsil etmenize olanak sağlar.
Bunu yapmak için yeni bir dosya oluşturalım: `serializers.py`
kopyalafrom rest_framework import serializers from .models import Post class PostSerializer(serializers.ModelSerializer): class Meta: model = Post fields = '__all__'
Burada, `PostSerializer` sınıfı, `Post` modelini serileştirecek ve tüm alanlarını içerecek şekilde ayarlandı.
5. Views Oluşturma
Artık API endpoint'ini oluşturmak için bir `view` sınıfı yazabiliriz. Bunun için DRF'nin sunduğu `APIView` veya `viewsets.ModelViewSet` gibi sınıfları kullanabiliriz. Şimdi, `views.py` dosyasına şu kodu ekleyelim:
kopyalafrom 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)
Bu sınıf, `GET` isteğiyle veritabanındaki tüm blog yazılarını alacak ve JSON formatında döndürecek. Artık yazıları listeleyebileceğimiz bir endpoint'imiz var!
6. URL Yönlendirmesi
Son olarak, bu view'i bir URL ile ilişkilendirelim. `urls.py` dosyasına gidip şu satırı ekleyelim:
kopyalafrom django.urls import path from .views import PostList urlpatterns = [ path('api/posts/', PostList.as_view(), name='post-list'), ]
Artık `/api/posts/` endpoint'i üzerinden blog yazılarımıza erişebiliriz!
7. API'yi Test Etme
Django'yu çalıştırarak API'yi test edebiliriz. Terminalde şu komutu çalıştırarak projeyi başlatın:
kopyalapython manage.py runserver
Tarayıcınızda `http://localhost:8000/api/posts/` adresine giderek blog yazılarınızı görebilirsiniz. JSON formatında dönen veriyi rahatça inceleyebilirsiniz.
Sonuç
Django REST Framework ile ilk API'nizi oluşturmak gerçekten çok basit. Gerekli adımları takip ederek hızlıca çalışır durumda bir API oluşturabilirsiniz. Artık veritabanı modelinizi dış dünyaya açmak, verileri JSON formatında almak ve göndermek için bu güçlü framework’ü kullanabilirsiniz.
Bu yazıda, Django ve Django REST Framework kullanarak temel bir API nasıl oluşturulur öğrendik. Eğer daha ileri seviyeye geçmek isterseniz, autentikasyon, yetkilendirme ve CRUD işlemleri gibi konuları da öğrenmeye devam edebilirsiniz.