Python Django ile Fast Rest API
Flutter, React, Xamarin, Swift, Kotlin veya herhangi bir dil ya da framework ile yazacağınız projelerinizde hemen hızlıca yazıp kullanabileceğiniz REST API ile karşınızdayım. Easy. Clean. Fast. GO!
Selam dostlarım, bu yazımda projeleriniz için hemen hızlı bir şekilde bir API yazıp kullanabilmeniz için tüm detayları anlatacağım. Tabii büyük projelerde kullanmanız için biraz daha deep dive gerekiyor fakat bu yazıda basit bir şekilde işinizi görebilecek belki Firebase, Jsonplaceholder vs. hiç dummy API ihtiyacı duymadan 5dk içinde kendi API’nizi yazıp kullanmaya başlayacaksınız. Hazırsanız başlayalım.
Öncelikle bilgisayarınızda Python kurulu olduğundan emin olun. Eğer benim gibi MacOS kullanıyorsanız zaten halihazırda bilgisayarınızda kuruludur. Windows veya Linux için Python3'ü bilgisayarınıza kurun. Hemen ardından kurduktan sonra terminal veya cmd’ye bu komut satırını yazarak Django’yu bilgisayarımıza kuralım:
pip install djangorestframework
Django’yu da kurduktan sonra şimdi projemize başlayabiliriz. Hemen terminal veya cmd üzerinden projeyi kurmak istediğiniz klasöre geçin ve:
django-admin startproject MyProject
cd MyProject
kodunu çalıştırın. Bu kod ile sizin proje klasörünüz MyProject adında oluşmuş olacak. Hemen ardından:
python3 manage.py startapp FastAPIDemo
komutunu da çalıştırarak artık FastAPIDemo adında bir uygulamanız var. Django zaten sizin için tüm dosyaları hazırlıyor. Bize kalan tek şey kodlarımızı yazmak. Ufaktan kodlarımıza geçelim:
hemen MyProject dosyası altındaki settings.py klasörüne geçiyoruz ve INSTALLED_APPS kısmına gelerek şu iki satırı ekliyoruz:
INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','rest_framework', <---------'FastAPIDemo', <---------]
Bu satırları ekledikten sonra artık Modelimizi yazalım. Ben şimdilik projemde kullanmak istediğim Modelimi yazacağım, siz isterseniz değiştirebilirsiniz ve esnek bir biçimde kullanabilirsiniz. Modelimiz şu şekilde:
Modelimizi de hemen yazdık. Şimdi sıra Admin dosyamıza geçip bu Modelimizi uygulamamıza bağlamakta. Hemen admin.py dosyasına gelelim ve şu kod satırını ekleyelim:
Bu kadar! Şimdi de sıra geldi modelimizi veritabanına eklemeye. Terminal veya cmd yi tekrar açıp: (eğer python yazdığınız zaman hata alıyorsanız python3 olarak deneyin.)
python manage.py makemigrations
yazıyoruz ve ardından:
python manage.py migrate
// eğer hata alırsanız
python manage.py migrate --run-syncdb
//kodunu çalıştırın
Ardından admin paneline giriş yapabilmemiz için bir superuser oluşturmaya geldi:
python manage.py createsuperuser
Komut çalıştığında kullanıcı adı, şifre ve mail bilgisi giriyoruz ve sonra
python manage.py runserver
diyerek projemizi ayağa kaldırıyoruz ve localhost:8000/admin adresine gittiğinizde giriş ekranına az önce superuser’da oluşturduğunuz Username ve Password ile giriş yapıyorsunuz. Orada
bu ekran karşınıza gelecek. İşte User Modelimiz orada! User modelimize tıklayıp orada bir kullanıcı oluşturuyoruz ve Save butonuyla bunu kaydediyoruz. Her şey tamam. Geriye tek bir şey kaldı o da bu Database’imizi bir REST API’a dönüştürmek! Hadi devam edelim.
Sırada Serializers, View and URL kısımları kaldı. Serializers ile başlayalım. FastAPIDemo klasörüne gelip serializers.py adında dosya açıyoruz ve bu kodu yazıyoruz. Sadece 8 satır!
Hemen sonra yine FastAPIDemo klasörünün altında views.py dosyasına geçiyoruz ve
20 satırlık bu kodu yazıyoruz. Burada sadece get ve post işlemlerini yapabileceğimiz kodu yazdım. Eğer put ve delete gibi işlemleri de yapmak istiyorsanız deep dive gerekiyor. Bunun için buraya tıklayabilirsiniz. View katmanımızı da oluşturduğumuza göre şimdi sırada URL tanımlamamızı yapmak kaldı ve her şey bitiyor. Evet gerçekten bitiyor! Hemen MyProject klasörü altında urls.py dosyamıza geliyoruz ve bu kodu ekliyoruz:
İşte bu kadar! Şimdi geriye kalan tek şey tekrar terminal veya cmd’ye
python manage.py runserver
yazıp. Hemennnn ardından localhost:8000/users/ adresine gidiyoruz.
veeee gördüğünüz gibi API’mız hazır. Bunu Postman üzerinde de test edelim!
gördüğünüz gibi kullanılmaya hazır. Aynı şekilde Postman üzerinden POST methoduya Body->raw seçerek JSON formatında id kullanmadan yeni bir kullanıcı ekleyebilirsiniz ve bunu ister mobil ister web isterseniz de farkı uygulamalarınızda çok rahat ve hızlı bir şekilde kullanabilirsiniz!
Daha fazlası için beni Medium, Twitter(fazla aktif olmasam da) ve Github üzerinde takip etmeyi unutmayın!
GitHub — https://github.com/ebrarbilgili
Repo – https://github.com/ebrarbilgili/FastApi
Twitter — https://twitter.com/ebrarblg
ve yeni hazırladığım içeriğini ilerleyen günlerde doldurup yeni başlayanlar için bir rehber niteliğinde olacak Flutter Atomic websitesi — https://flutteratomic.com
(Bu yazının ingilizcesi de gelecektir.)
Have a nice Coding!