
Merhaba; Bu yazıda django rest framework kütüphanesinden bahsedicem.Rest ve Api nedir öncelikle ondan behsedelim.Rest Client-Serverlar arasında veri alışverişi sağlayan bir HTTP protokolüdür.Rest ile GET-UPDATE-DELETE-PUT-POST request tiplerini alarak JSON,XML ve TEXT olarak veri alabiliriz. API ise bir uygulamanın başka uygulamalar tarafından kullanılmasını sağlayan yapıdır.Kullanmamızda ki amaç ise web servisler üzerinde kurumlar arasında veri alışverişinde büyük öneme sahiptir.Web tabanlı çoğu projede dışarıdan veri alışverişi çoktur.
Nasıl kullanılır?
İlk önce bir sanal ortam kurmamız lazım masaüstünde bir doysa oluşturup ona gidiyoruz.Ben djangorest adında bir dosya oluşturdum ve ona geçiş yaptım.
Kod:
cd desktop/djangorest
Kod:
virtualenv venv
Sonrasında sanal ortamı aktif hale getiriyoruz;
Kod:
source venv/bin/activate
Şimdi djangoyu kuralım;
Kod:
pip install django
Ve hemen ardından django rest frameworkü kuralım;
Kod:
pip install djangorestframework
Hemen ardından bir django projesi başlatıyoruz
Kod:
django-admin startproject restframework .
Şimdi bir app oluşturuyoruz
Kod:
python manage.py startapp app1
Dosyayı bir derleyicide açalım şimdi ve ardından restframewrok dosyasının içinde ki settings.pye gidelim.Altta görmüş oldugunuz alana 'rest_framework','app1',
Bunları ekliyoruz.
Kod:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework', # bunları ekleyelim
'app1', # bunları ekleyelim
]
Bunları bu alana ekleyelim.
APP1 Dosyasına gidelim ve models.pyyi açalım ardından;
Kod:
class Product(models.Model):
title=models.CharField(max_length=250, blank=True, verbose_name='Başlık')
text=models.CharField(max_length=600, blank=True, verbose_name='Metin')
image=models.ImageField(blank=True, verbose_name='Resim')
link=models.CharField(max_length=250, blank=True, verbose_name='Başvuru Linki')
Bunları ekliyoruz ve terminale gelip
Kod:
python manage.py migrate
Kod:
python manage.py makemigrations
Sırasıyla bunları yazıyoruz ve dbyi oluşturmuş oluyoruz.
Şimdi app1 klosörüne api adlı bir klosör eklyiyoruz ve altına serializers.py views.py adında python dosyaları oluşturuyoruz.
serializers.pyyi açıyoruz ve ardından bu kodları yazıyoruz
Kod:
from rest_framework import serializers
from app1.models import Product
class ProductSerializer(serializers.ModelSerializer):
class ****:
model = Product
fields = (
'id',
'title',
'text',
'image',
'link',
)
Şimdi Views.pyyi açıyoruz ve bu kodları yazıyoruz.
Kod:
from rest_framework.generics import ListCreateAPIView
from app1.api.serializers import ProductSerializer
from app1.models import Product
class ProductView(ListCreateAPIView):
queryset =Product.objects.all()
lookup_field = "pk"
serializer_class = ProductSerializer
Son olarak restframework içinde bulunan urle gelip ProductView import edip api için url oluşturuyorusunuz.
Kod:
from django.contrib import admin
from django.urls import path
from app1.api.views import ProductView
urlpatterns = [
path('admin/', admin.site.urls),
path('list', ProductView.as_view()),
]
Şimdi gelin apilerimiz çalıştı mı bakalım
Terminale gelip;
Kod:
Python manage.py makemigrations
Python manage.py migrate
Python manage.py runserver
Komutlarını gerçekleştirirseniz dbyi son olarak yenile ve localde çalıştırır.

http://127.0.0.1:8000/list adresine gidip apilerinizi inceleyebilirsiniz.
Daha ayrıntılı bilgi için Django-Rest Framework Resmi Sitesi sitesini inceleyebilir bana mesaj atabiliriniz.
Şuan geliştirdiğimiz proje linki: GİTHUB

