Merhabalar bu yazımda size Python Django Rest API oluşturmayı anlatacağım. API oluşturmak için “djangorestframework” modülünü kullanacağız.
Python Django Rest API Oluşturma
Python Django Rest API oluşturmaya başlamadan önce proje ortamını hazırlayalım.
Django Proje Ortamının Hazırlanması
Öncelikle gerekli olan modüllerimizi kurarak başlayalım.
Django’yu kurmak için
pip install django
komutunu PowerShell veya CMD terminalimize yazabiliriz. Diğer kullanacağımız modülü ise
pip install django
yazarak kurabiliriz.
Sonrasında Django projemizi oluşturmak için terminalimize
django-admin startproject api_example
komutunu yazıyoruz.
Daha sonra oluşturduğumuz klasörün içine girmemiz gerekiyor.
cd api_example
ile ilgili klasöre gidiyoruz.
Klasörün içerisine girdiğimizde yeni bir ayrı uygulama oluşturuyoruz. Bu işlem nerdeyse tüm Django
projelerinde olur. Geliştirici dışardan dahil etmek istediklerini bu şekilde dahil eder. Projelerin
sağlığı açısından tercih edilen bir yöntemdir. Bunu aşağıdaki kod ile yapıyoruz.
python manage.py startapp api
Yeni başlayan çoğu kişi burada hata yapıyor. Genellikle bu hatanın nedeni kullanıcının ilk başta oluşturduğu klasörün içine “cd dizinadı” şeklinde girmemesidir. Ben başta “api_example” şeklinde bir klasör oluşturdum. Bu yüzden “cd api_example” komutunu terminale yazıp ilgili klasörün içerisine girdim.
Eğer bir problem yoksa “api_example” klasörünün altında bulunan “api_example/settings.py” dosyasına gidiyorum. Bu dosya içerisinde yer alan “INSTALLED_APPS” bölümüne geliyorum.
En alt satıra ‘api’ şeklinde ayrı olarak oluşturduğum uygulamayı ekliyorum. Aynı şekilde ‘rest_framework’ uygulamasını da ekliyorum. Django üzerinde dışarıdan üçüncü parti uygulamalar dahil edecekseniz bunu projeye bildirmek için “settings.py” dosyasını güncellemeniz gerekir.
Ekledikten sonra kodumuz şöyle gözükmelidir.
Artık proje ortamımız hazır diğer işlemlere geçebiliriz.
Veri Tabanı Bilgilendirme ve Kullanıcı Oluşturma
Veri tabanında gerekli düzenlemelerin yapılması için terminale
python manage.py migrate
komutunu yazıyoruz. Sonrasında ise bir “superuser” yani admin oluşturmamız gerekiyor. Bunun için yeniden terminale gelip aşağıdaki komutu yazıyoruz.
python manage.py createsuperuser
Bunun sonucunda sizden kullanıcı adı, e-mail ve şifre isteyecek dilerseniz boş geçebilirsiniz.
Şimdi dilerseniz sunucumuzu ayağa kaldıralım. Bunun için terminale
python manage.py runserver
komutunu yazıyoruz. Bize şöyle bir çıktı verecek.
Tarayıcımıza gelip arama çubuğuna “127.0.0.1:8000/admin” yazıyoruz. Ve az önce oluşturduğumuz “superuser” ile sisteme giriş yapıyoruz.
Model Oluşturma
Şimdi ilk modelimizi yani API yapımızı oluşturacağız. Bunun için “api” klasörü altında yer alan “models.py” dosyasına geliyoruz.
Ben diller ve ülkeler için bir API oluşturacağım o yüzden ona uygun bir model oluşturuyorum. Son şekli resimdeki gibidir.
İki alanda “CharField” türündedir. Ve maximum uzunlukları 30 karakterdir.
Yeni bir model oluşturduğumuzda veya var olan bir modeli güncellediğimizde bunu Django’ya bildirmemiz gerekiyor. Bunun için terminale
python manage.py makemigrations
komutunu yazıyoruz.
Sonrasında ise bu değişiklikleri admin panelinde görebilmek için “api” klasörü altında yer alan “admin.py” dosyasının içerisine resimdeki kodları ekliyoruz.
Sonrasında ise benimle beraber aşağıdaki adımları uygulayın.
Modeli JSON Formatlı Değere Dönüştürme
API içerisinde yer alan verilerin JSON formatında görüntülenmesi için bu işlemleri yapmamız gerekiyor. Bu işlemi yapmak için “api” klasörü altında “serializers.py” isimli bir dosya oluşturuyoruz.
Bu dosyaya gelip aşağıdaki kodları yazıyoruz.
Bu kodlarla birlikte API verileri JSON değerinde gösterilmeye hazır oldu.
Routing İşlemleri ve Verinin Ekrana Yansıtılması
Artık yapmamız gereken veriyi ekrana yazdırmak. Bunun için gerekli routing (yönlendirme) işlemlerini yapacağız. Ancak öncelikle “api” klasörü altındaki “views.py” dosyasına aşağıdaki kodları ekliyoruz.
Bu kodlarla birlikte verilerimiz tarayıcıda görünebilir olacaktır. Ancak bunu düzgün şekilde yapmak için routingleri halletmeliyiz. Bu yüzden “api_example” klasörü altında bulunan “urls.py” dosyasına gidiyoruz. Ve şu kodları yazıyoruz.
Yukarıdaki routing işleminde öncelikle admin panelimizin adresini tanımladık. Bu sayede “127.0.0.1:8000/admin” adresine gittiğimizde ilgili admin panelini görebilmekteyiz.
Altıncı satırdaki kodla beraber “127.0.0.1:8000” adresiyle alakalı yönlendirmelerin “api” klasörü altında yer alan “urls.py” dosyasında olduğunu Django’ya bildirdik.
İlgili dosyanın olmadığını fark etmişsinizdir. Bunun için ‘api’ klasörü altında ‘urls.py’ isimli yeni bir dosya oluşturuyoruz. Bu dosyaya aşağıdaki kodları yazıyoruz.
Bu kodlar sayesinde dinamik yönlendirmelerin ‘rest_framework’ tarafından yapılmasını söylüyoruz. Şuan API hazır. API görmek için “127.0.0.1:8000/languages” adresine gidebiliriz.
Verilerimiz şekildeki gibi gözükmelidir.
Admin sayfasında yer alan “Add” ile daha fazla veri ekleyebiliriz. Veya tam tersi silebiliriz.
Python Django ile Rest API oluşturma yazımızın sonuna geldik. İçeriğimiz hoşunuza gittiyse paylaşıp yorum yapabilirsiniz. Bir başka Python içeriğimizde görüşmek üzere.