Django REST Framework (DRF) Nedir?
Django REST Framework, Django ile hızlı ve güvenli bir şekilde RESTful API’ler oluşturmanızı sağlayan güçlü bir araçtır. Django, zaten güçlü bir web framework'ü olmasına rağmen, DRF, veri sunumu ve API işlemleriyle ilgili eksiklikleri giderir. Eğer backend geliştiricisiyseniz ve hızlı bir şekilde API geliştirmek istiyorsanız, Django REST Framework tam size göre!
Adım Adım Django REST Framework ile API Geliştirme
1. Django ve Django REST Framework Kurulumu:
İlk olarak, projenize Django'yu ve Django REST Framework'ü kurmamız gerekiyor. Eğer önceden kurulu değilse, terminal üzerinden şu komutları kullanabilirsiniz:
pip install django
pip install djangorestframework
2. Yeni bir Django Projesi Oluşturun:
Yeni bir proje başlatmak için aşağıdaki komutu kullanabilirsiniz:
django-admin startproject api_project
cd api_project
3. Bir Django Uygulaması Ekleyin:
Projemizin içinde bir uygulama (app) oluşturarak API’mizi bu uygulama üzerinden geliştireceğiz. İşte komut:
python manage.py startapp api
4. REST Framework’u Projeye Dahil Edin:
Projeye REST framework’ü dahil etmek için `settings.py` dosyasını açın ve `INSTALLED_APPS` listesine `'rest_framework'` ifadesini ekleyin:
INSTALLED_APPS = [
# diğer uygulamalar
'rest_framework',
]
5. Model Oluşturma ve API Bağlantısı:
Artık API’nin temel yapı taşlarını atıyoruz. Örneğin, basit bir “Book” modeli oluşturduğumuzu varsayalım. Bu modeli önce `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
6. Serializer Oluşturma:
Veri modelini JSON formatına çevirmek için serializer kullanmamız gerekiyor. `serializers.py` dosyasını oluşturup içeriğini şu şekilde yazalım:
from rest_framework import serializers
from .models import Book
class BookSerializer(serializers.ModelSerializer):
class Meta:
model = Book
fields = '__all__'
7. API Görünümlerini (Views) Tanımlama:
Şimdi, kitaplarımıza erişebileceğimiz bir API endpoint’i oluşturalım. Bu işlemi `views.py` dosyasında yapacağız:
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status
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, status=status.HTTP_200_OK)
def post(self, request):
serializer = BookSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
8. URL'leri Ayarlama:
Son olarak, `urls.py` dosyasında bu görünümü (view) bir endpoint ile bağlayalım:
from django.urls import path
from .views import BookList
urlpatterns = [
path('books/', BookList.as_view(), name='book-list'),
]
9. Uygulama ve Sunucu Başlatma:
Son olarak, geliştirdiğimiz API'yi çalıştırmak için şu komutları kullanıyoruz:
python manage.py migrate
python manage.py runserver
Artık `http://127.0.0.1:8000/books/` adresine giderek API’mizi test edebiliriz. Buradan kitap ekleyebilir, listeleyebiliriz!
API’nizi Geliştirmek ve Özelleştirmek
Django REST Framework, sadece basit API’ler oluşturmakla kalmaz, aynı zamanda gelişmiş özelliklerle de API'nizi zenginleştirmenizi sağlar. Örneğin:
- Token Authentication: Kullanıcı kimlik doğrulama işlemi için token tabanlı güvenlik ekleyebilirsiniz.
- Pagination: Verilerinizi sayfalara ayırarak kullanıcı dostu hale getirebilirsiniz.
- Filtering: API’nizdeki verileri filtreleme özelliği ile daha esnek hale getirebilirsiniz.
Daha fazlası için DRF’nin resmi belgelerine göz atabilirsiniz. Geliştirici topluluğu oldukça aktiftir ve sıkça karşılaşılan sorunların çözümleri hemen her zaman bulunur.
Sonuç
Django REST Framework, güçlü, esnek ve hızlı API’ler oluşturmak için mükemmel bir araçtır. Django ile entegrasyonu çok kolaydır ve geliştirdiğiniz API'yi hemen yayına alabilir, frontend tarafına entegre edebilirsiniz. Bu adımları takip ederek, profesyonel API'ler geliştirme yolunda ilk adımınızı attınız!