Django REST Framework Nedir?
Django REST Framework, Django ile API'ler geliştirmek için kullanılan açık kaynaklı bir kütüphanedir. RESTful API'ler oluşturmak için gereken tüm araçları sağlar. DRF, CRUD (Create, Read, Update, Delete) işlemleri için hızlı bir şekilde RESTful servisleri yapılandırmanıza olanak tanır. Bu, geliştiricilerin veritabanı ile etkileşimde bulunurken ve istemcilerle veri paylaşırken daha az zaman harcamasını sağlar.
Başlangıç: Django ve Django REST Framework Kurulumu
Django REST Framework kullanmaya başlamadan önce, öncelikle Django'yu kurmamız gerekir. Django'yu ve DRF'yi kurmak için terminal üzerinden şu komutları kullanabilirsiniz:
pip install django
pip install djangorestframework
Bu işlem, Django'yu ve DRF'yi sisteminize yükleyecektir.
Yeni Bir Django Projesi Oluşturma
Şimdi, Django projemizi oluşturalım. Yeni bir proje başlatmak için terminalde aşağıdaki komutu kullanabilirsiniz:
django-admin startproject myproject
cd myproject
Bu komut, yeni bir Django projesi oluşturur ve içine geçiş yapar. Şimdi bu projeye bir uygulama ekleyebiliriz. Örneğin, `api` adlı bir uygulama ekleyelim:
python manage.py startapp api
Django REST Framework ile İlk API Endpoint'ini Oluşturma
Şimdi sırada, basit bir API endpoint’i oluşturma var. Öncelikle, `api` uygulamamızda bir model oluşturalım. Diyelim ki bir Kitap modelimiz olacak. Bu modeli `models.py` dosyasına ekleyelim:
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
Bu model, kitaplar için başlık, yazar ve yayınlanma tarihi gibi temel bilgileri içeriyor. Şimdi bu modelin verilerini alacak bir API endpoint’i oluşturalım.
Öncelikle `serializers.py` dosyasını oluşturalım ve kitabın modelini API'ye uyumlu hale getirelim. `api` uygulamanızda `serializers.py` dosyasını oluşturun ve içine şu kodu ekleyin:
from rest_framework import serializers
from .models import Book
class BookSerializer(serializers.ModelSerializer):
class Meta:
model = Book
fields = ['id', 'title', 'author', 'published_date']
Bu sınıf, Book modelinin verilerini alıp JSON formatına dönüştürür. Şimdi, bu veriyi geri döndüren bir API view'ı oluşturalım.
`views.py` dosyasına şu kodu ekleyin:
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)
Bu view, `GET` isteği aldığında tüm kitapları döndürecektir. Şimdi URL'leri yapılandıralım. `urls.py` dosyasına şu kodu ekleyin:
from django.urls import path
from .views import BookList
urlpatterns = [
path('books/', BookList.as_view(), name='book-list'),
]
API'yi Test Etme
Tüm işlemleri tamamladıktan sonra, sunucuyu başlatabiliriz:
python manage.py runserver
Artık `http://127.0.0.1:8000/books/` adresine giderek oluşturduğumuz API'yi test edebilirsiniz. Eğer her şey doğru şekilde yapılandırılmışsa, JSON formatında kitaplarınızın listelendiğini görmelisiniz.
Django REST Framework ile Güvenlik
Bir API geliştirirken güvenlik oldukça önemlidir. Django REST Framework, API güvenliğini sağlamak için birçok seçenek sunar. Örneğin, Token Authentication kullanarak, kullanıcıların doğrulanmasını sağlayabilirsiniz. Bunun için şu adımları izleyebilirsiniz:
Öncelikle, DRF'nin authentication özelliğini aktif hale getirin. Bunun için `settings.py` dosyasına şu kodu ekleyin:
INSTALLED_APPS = [
# Diğer uygulamalar
'rest_framework.authtoken',
]
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework.authentication.TokenAuthentication',
],
}
Sonrasında kullanıcıların token oluşturabilmesi için, şu komutu çalıştırarak gerekli migrations işlemini yapın:
python manage.py migrate
Artık, kullanıcılarınız API'ye token ile giriş yapabilir. Bunun için token oluşturma işlemi için DRF'nin sağladığı `obtain_auth_token` view'ını kullanabilirsiniz.
Sonuç
Django REST Framework, Django ile API geliştirmeyi son derece kolaylaştırır. Bu yazıda, Django REST Framework ile temel bir API nasıl oluşturulur, güvenlik nasıl sağlanır gibi konuları ele aldık. Artık, Django'nun gücünü kullanarak API geliştirmek sizin için daha erişilebilir ve verimli.
Django ve DRF'nin sunduğu esneklik ve güçlü özellikler sayesinde, daha büyük ve daha karmaşık API projeleri üzerinde çalışmak oldukça eğlenceli hale gelir. Kendi projelerinizi oluştururken bu rehberden faydalanabilirsiniz.