Neden FastAPI?

FastAPI'ye Giriş

Matt Eckerle

Software and Data Engineering Leader

FastAPI nedir?

Önce bazı terimler

  1. API: Application Programming Interface - HTTP protokolüyle yapılandırılmış veri ileten web uygulamaları
  2. Web Uygulaması: Web üzerinden trafik sunan uygulama
  3. Web Çatısı (Framework): Web uygulamaları geliştirmeye yardımcı yazılım çatısı

FastAPI, Python ile yüksek performanslı API'leri hızla oluşturmanın bir yoludur

FastAPI'ye Giriş

FastAPI'nin temel özellikleri

  • Hızlı: Çok yüksek performans
  • "Düşük kod" ve öğrenmesi kolay: Python ek açıklamaları ve tür ipuçları
  • Sağlam: Otomatik dokümantasyonlu üretim için hazır
  • Standartlara dayalı: OpenAPI ve JSON Schema tabanlı

FastAPI logosu

OpenAPI logosu

JSON logosu

1 https://fastapi.tiangolo.com/
FastAPI'ye Giriş

FastAPI vs. diğer Python web çatıları

Flask

  • Web tabanlı (GUI) uygulamalar geliştirin
  • ORM isteğe bağlı

FastAPI

  • API'ler geliştirin
  • ORM isteğe bağlı

Django

  • Web tabanlı (GUI) uygulamalar geliştirin
  • ORM yerleşik

Temel farklar

  • Veritabanı işlemi olmayan API'ler için
  • Veri ve makine öğrenimi işlemleri
FastAPI'ye Giriş

FastAPI ile ilk web uygulamamızı oluşturma

1. FastAPI'yi kurun

pip install fastapi

2. main.py içinde uygulamanızı oluşturun

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"message": "Hello World"}

3. Sunucuyu çalıştırın

fastapi dev main.py

FastAPI'nin çalıştığını gösteren REPL

FastAPI'ye Giriş

FastAPI ile pratik yapmadan önce

Bazı notlar

  1. "Bu kodu çalıştır" düğmesiyle FastAPI sunucusu çalıştırılamaz
  2. Sunucu kodunu Python düzenleyicisinde main.py olarak tanımlayın

  3. Terminalden şu komutla çalıştırın: fastapi dev main.py

  4. Terminal günlüklerinde Application startup complete. yazdığını doğrulayın
  5. Canlı sunucuyu aynı terminalde Control + C ile durdurun
  6. Alıştırma yapmak için kendi Python ortamınıza da FastAPI kurun
FastAPI'ye Giriş

Hadi pratik yapalım!

FastAPI'ye Giriş

Preparing Video For Download...