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

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.

Al_Yapay_Zeka

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

Python "ModuleNotFoundError": Hata Nasıl Çözülür?

Bir Sabaha Uyanmak: Python'da "ModuleNotFoundError" Hatasıyla TanışmakPython programlamaya başladığınızda, her şey güzel ve yolunda gider. Kendi kodunuzu yazıyor, her satırda ilerleyerek büyüyen bir proje üzerinde çalışıyorsunuz. Ama bir sabah, çalıştırdığınız...

JavaScript'te 'Callback Hell' Sorunu ve Modern Çözümler: Promises ve Async/Await ile Refactoring

JavaScript'te Callback Hell Nedir? JavaScript dünyasında yeni bir projeye başlarken, küçük bir iş için yazdığınız basit kodun bir anda karışıp içinden çıkılamaz hale geldiğini hissettiniz mi? Bu his, genellikle "Callback Hell" olarak bilinen karmaşık...

Veri Görselleştirme: Python ile Verilerinizi Sanat Eserine Dönüştürün

Veri analizi dünyasına adım attığınızda, verilerin sayılar ve grafiklerle sınırlı olduğunu düşünebilirsiniz. Ancak, veri görselleştirme, basit bir analizden çok daha fazlasıdır. Aslında, verilerinizi bir sanat eserine dönüştürmek, görsel açıdan etkileyici...

Windows'ta PHP Nasıl Kurulur? Adım Adım Rehber

PHP, dinamik web siteleri ve uygulamalar geliştirenlerin en çok tercih ettiği programlama dillerinden biridir. Eğer bir web geliştiricisiyseniz, PHP öğrenmek ve kullanmak büyük bir avantaj sağlar. Peki, Windows işletim sisteminde PHP nasıl kurulur? İşte...

Web Sitelerinde Kullanıcı Deneyimini İyileştirmek İçin 'Lazy Loading' Yönteminin Gücü ve Uygulama İpuçları

Web sitelerinin hızını artırmak ve kullanıcı deneyimini iyileştirmek için bir dizi yöntem bulunmaktadır. Ancak son yıllarda, bu alanda öne çıkan bir kavram var: Lazy Loading. Peki, bu yöntem tam olarak ne işe yarar ve SEO üzerindeki etkileri nelerdir?...