Django REST Framework Nasıl Kullanılır? Adım Adım Kılavuz

Django REST Framework ile API geliştirme adımlarını anlatan bu yazı, adım adım ve anlaşılır bir şekilde süreci açıklıyor. Django ile API geliştirmek isteyenler için temel bir kılavuz sunuluyor.

BFS

Django ile API geliştirmek oldukça popüler bir konu, özellikle veritabanı işlemleri ve kullanıcı etkileşimleri için sağlam bir altyapı sağlıyor. Peki, Django REST Framework (DRF) tam olarak nedir ve nasıl kullanılır? Bu yazımızda, Django ile RESTful API geliştirme sürecini adım adım inceleyecek ve gerekli kod parçalarını sizinle paylaşacağız.

Django REST Framework Nedir?

Django REST Framework, Django üzerinde API geliştirmeyi oldukça kolaylaştıran bir kütüphanedir. REST (Representational State Transfer), web servisleri oluşturmanın en popüler yöntemlerinden biridir. DRF, API’lerinizi daha temiz, daha güvenli ve daha hızlı bir şekilde geliştirmenize yardımcı olur.

Eğer Django kullanıyorsanız, DRF ile bir API oluşturmak oldukça basittir. Ancak önce Django'yu ve Python’u iyi bir şekilde anlamanız gerekir.

Django Projesi Oluşturma

Django REST Framework kullanmadan önce, Django projenizi oluşturmalısınız. Django'yu kurmak için terminal üzerinden aşağıdaki komutları kullanabilirsiniz.

```bash
pip install django
```

Yükleme tamamlandıktan sonra, yeni bir Django projesi oluşturmak için şu komutu girin:

```bash
django-admin startproject myproject
```

Projenin adını myproject olarak belirledik. Bu komutla Django'nun temel dosya yapısı otomatik olarak oluşturulacaktır. Şimdi Django'nun çalışıp çalışmadığını kontrol edelim:

```bash
python manage.py runserver
```

Tarayıcınızda `http://127.0.0.1:8000/` adresine giderek Django’nun başarıyla kurulduğunu doğrulayabilirsiniz.

Django REST Framework Kurulumu

Django projemizi oluşturduktan sonra, şimdi DRF'yi projeye dahil edebiliriz. Aşağıdaki komutla DRF’yi yükleyebilirsiniz:

```bash
pip install djangorestframework
```

Yükleme işlemi bittikten sonra, DRF'yi Django projenizde kullanabilmek için settings.py dosyasına şu satırı eklemelisiniz:

```python
INSTALLED_APPS = [
...
'rest_framework',
]
```

İlk API Görünümümüzü Oluşturma

Şimdi sıra geldi en heyecan verici kısma: İlk API’mizi oluşturacağız! Django’nun güçlü özelliklerinden faydalanarak hızlıca bir API oluşturabiliriz. İlk önce, Django’nun app yapısını kullanarak bir uygulama oluşturmalıyız. Aşağıdaki komutu kullanarak blog adında bir uygulama oluşturabiliriz:

```bash
python manage.py startapp blog
```

Uygulama oluşturulduktan sonra, blog/views.py dosyasına şu kodu ekleyelim:

```python
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status

class HelloWorld(APIView):
def get(self, request):
return Response({"message": "Hello, World!"}, status=status.HTTP_200_OK)
```

Bu, basit bir GET isteği ile “Hello, World!” mesajını döndüren bir API görüşüdür. Artık bu görünüme bir URL bağlamamız gerekiyor. blog/urls.py dosyasını şu şekilde oluşturabiliriz:

```python
from django.urls import path
from .views import HelloWorld

urlpatterns = [
path('hello/', HelloWorld.as_view(), name='hello_world'),
]
```

Şimdi, myproject/urls.py dosyasına gidip bu yeni URL’i ekleyelim:

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

urlpatterns = [
path('admin/', admin.site.urls),
path('api/', include('blog.urls')), # Blog uygulamasındaki URL’leri dahil ediyoruz
]
```

Bu noktada Django projemizi yeniden başlatmamız gerekecek. Terminalde şu komutu çalıştırarak sunucuyu yeniden başlatın:

```bash
python manage.py runserver
```

Tarayıcıda `http://127.0.0.1:8000/api/hello/` adresine gittiğinizde, "Hello, World!" mesajını görmelisiniz.

DRF ile Serializer Kullanımı

Şimdi, daha gerçekçi bir API yapalım ve veri modelimizi kullanarak JSON formatında veri döndürelim. İlk önce bir model oluşturalım. blog/models.py dosyasını şu şekilde güncelleyelim:

```python
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
```

Modelimizi ekledik, ancak henüz bu modeli kullanarak veriyi JSON formatında döndüren bir API oluşturmadık. Bunun için DRF’nin serializers modülünü kullanacağız. blog/serializers.py dosyasını oluşturup, şu şekilde yazalım:

```python
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 modelinin verilerini JSON formatında döndürecektir.

Şimdi, blog/views.py dosyasını şu şekilde güncelleyelim:

```python
from rest_framework.generics import ListCreateAPIView
from .models import Post
from .serializers import PostSerializer

class PostListCreate(ListCreateAPIView):
queryset = Post.objects.all()
serializer_class = PostSerializer
```

Burada, ListCreateAPIView ile hem listeleme hem de oluşturma işlemlerini gerçekleştirebiliriz. Şimdi, blog/urls.py dosyasını şu şekilde güncelleyelim:

```python
from django.urls import path
from .views import PostListCreate

urlpatterns = [
path('posts/', PostListCreate.as_view(), name='post_list_create'),
]
```

Şimdi API’miz, `POST` isteği ile veri ekleyebilir ve `GET` isteği ile tüm blog yazılarını listeleyebilir.

Sonuç

Django REST Framework ile API geliştirmek gerçekten kolay ve hızlı! Yukarıdaki adımları takip ederek basit bir API oluşturabilirsiniz. Bu sadece başlangıç; DRF’nin sunduğu daha birçok güçlü özellik var. İleri seviyede kullanıcı doğrulama, token tabanlı oturum yönetimi gibi konuları da keşfetmek isteyebilirsiniz. Bu yazı ile temel API oluşturma konusunda güçlü bir adım atmış oldunuz. Artık daha karmaşık projeler oluşturabilir ve profesyonel web servisleri geliştirebilirsiniz.

İlgili Yazılar

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

ApiUp Nedir?

Merhabalar, bir süredir üzerinde çalıştığım yeni projemi hayata geçirdim. Bu Proje sayesinde, IRC sunucuları en popüler uygulamalarla entegre edilebiliyor. Şu anda Skype, WhatsApp ve Telegram uygulamalarını destekliyoruz. API Sayesinde, IRC Sunucularından...

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...