Django REST Framework ile Hızla API Geliştirmek: Adım Adım Rehber

Bu yazıda, Django REST Framework ile basit bir API nasıl geliştirilir, adım adım gösterdik. Blog yazıları için bir model, serializer, API görünümleri ve URL’ler oluşturarak temel bir API projesi kurduk.

BFS

Django ile web uygulamaları geliştirmek kolay ve etkili olsa da, zaman zaman sadece sunucudan veri almak ve göndermek yeterli olmaz. İşte tam bu noktada Django REST Framework (DRF) devreye giriyor. Django REST Framework, Django'nun sunduğu güçlü yapıyı API'lerle birleştirerek verileri JSON formatında almak ve göndermek için harika bir çözüm sunuyor. Peki, DRF ile hızlıca API nasıl oluşturulur? Gelin adım adım öğrenelim!

Başlangıç: Django Projesi Kurulumu


İlk adım, Django projesi oluşturmaktır. Eğer halihazırda bir Django projesi yoksa, terminal üzerinden aşağıdaki komutla yeni bir proje oluşturabilirsiniz:


django-admin startproject myproject


Projenizi oluşturduktan sonra, uygulamanızı da oluşturmanız gerekiyor. Diyelim ki bir “Blog” uygulaması geliştireceksiniz. Hadi, terminalden:


python manage.py startapp blog


Bu komut ile `blog` adında bir uygulama oluşturmuş olduk.

Adım 1: Django REST Framework’ü Kurma


Şimdi sıra, Django REST Framework'ü projeye dahil etmeye geldi. Proje dizininizde terminali açarak şu komutu çalıştırın:


pip install djangorestframework


Kurulum tamamlandığında, `INSTALLED_APPS` listesine `rest_framework`’ü eklemelisiniz. `settings.py` dosyasını açın ve aşağıdaki satırı ekleyin:


INSTALLED_APPS = [
    # Diğer uygulamalar...
    'rest_framework',
]


Adım 2: Model Oluşturma


Artık Django’nun güçlü veritabanı yönetim sistemini kullanarak blog yazıları için bir model oluşturalım. `blog/models.py` dosyasını açın ve aşağıdaki kodu yazın:


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, her blog yazısının başlığını, içeriğini ve oluşturulma zamanını saklar. Şimdi veritabanını güncellemek için aşağıdaki komutları çalıştırın:


python manage.py makemigrations
python manage.py migrate


Adım 3: Serializer Oluşturma


Django REST Framework, veritabanı modellerinizi JSON formatında sunmak için bir `Serializer` kullanır. Şimdi, blog yazıları modelimiz için bir serializer oluşturalım. `blog/serializers.py` dosyasını açın ve şu kodu yazın:


from rest_framework import serializers
from .models import Post

class PostSerializer(serializers.ModelSerializer):
    class Meta:
        model = Post
        fields = ['id', 'title', 'content', 'created_at']


Bu serializer, Post modelindeki verileri alacak ve JSON formatında dışa aktaracaktır.

Adım 4: API Görünümü (Views) Oluşturma


API'yi oluşturmanın bir sonraki adımı, Django’nun görünümlerini (views) kullanarak yazılarımızı listelemek ve detaylarını almak olacak. `blog/views.py` dosyasını açın ve aşağıdaki kodu ekleyin:


from 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)

class PostDetail(APIView):
    def get(self, request, pk):
        try:
            post = Post.objects.get(pk=pk)
        except Post.DoesNotExist:
            return Response({'error': 'Post not found'}, status=status.HTTP_404_NOT_FOUND)
        
        serializer = PostSerializer(post)
        return Response(serializer.data)


Bu görünümler, blog yazılarını listeleyen ve tekil bir yazıyı detaylı gösteren API'ler olacak.

Adım 5: URL'ler ve Yönlendirme


Şimdi sıra, yazılarımıza ulaşabilmek için URL’leri eklemekte. `blog/urls.py` dosyasını açın ve aşağıdaki gibi yapılandırın:


from django.urls import path
from .views import PostList, PostDetail

urlpatterns = [
    path('posts/', PostList.as_view(), name='post_list'),
    path('posts//', PostDetail.as_view(), name='post_detail'),
]


Son olarak, `myproject/urls.py` dosyasına aşağıdaki satırı ekleyerek bu URL’leri ana projeye dahil edin:


from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/', include('blog.urls')),
]


Adım 6: API Test Etme


Şimdi API'yi test edebiliriz. Sunucuyu çalıştırmak için şu komutu girin:


python manage.py runserver


Tarayıcınızda `http://127.0.0.1:8000/api/posts/` adresine giderek blog yazılarının listesini görebilirsiniz. Ayrıca, `http://127.0.0.1:8000/api/posts/1/` gibi bir URL ile bir yazının detaylarına da ulaşabilirsiniz.

Sonuç


Ve işte karşınızda! Django REST Framework ile hızlıca bir API geliştirdiniz. Şimdi projelerinizi hızlıca büyütebilir, daha fazla özellik ekleyerek kullanıcılarınızla etkileşime geçebilirsiniz. Django’nun esnekliği ve DRF’nin gücüyle API geliştirme süreci hiç olmadığı kadar kolay hale geliyor.

Unutmayın, DRF sadece güçlü değil, aynı zamanda çok esnektir. İlerleyen zamanlarda daha karmaşık özellikler eklemek, kullanıcı doğrulama işlemleri yapmak veya daha gelişmiş filtrelemeler gerçekleştirmek oldukça kolay.

İlgili Yazılar

Benzer konularda diğer yazılarımız

ASP.NET Core ile Mobil Uygulama Geliştirme: Cross-Platform Web ve Mobil Uygulama Birleştirme

Günümüzde mobil uygulamalar hayatımızın ayrılmaz bir parçası haline geldi. Akıllı telefonlarımızda geçirdiğimiz zamanın büyük bir kısmını mobil uygulamalar sayesinde geçiriyoruz. Peki, bir mobil uygulama geliştirirken karşılaştığımız zorlukları nasıl...

ASP.NET Core 500 Internal Server Error: Sebepleri ve Çözümleri

Bir web geliştiricisi olarak, karşılaştığınız en zorlayıcı hatalardan biri şüphesiz "500 Internal Server Error"dır. Bu hata, web uygulamanızda her şeyin yolunda gittiğini düşündüğünüz bir anda karşınıza çıkabilir ve tüm projeyi durdurabilir. Ancak merak...

OAuth2 Authentication Error: Nedenleri ve Çözümleri

OAuth2 Authentication Error: Gerçekten Neyin Peşindeyiz?Her geliştirici, kimlik doğrulama hatalarıyla bir noktada karşılaşmıştır. Ama bazen işler kontrolden çıkabiliyor. Eğer bir gün OAuth2 ile çalışırken bir kimlik doğrulama hatası aldığınızda, yalnız...