0Pricing
FastAPI Backend Development Bootcamp · Ders

Yaygın Bağımlılıkları Ekleme

Veritabanı oturumları, kullanıcı kimlik doğrulaması veya uç noktalar arasında paylaşılan yapılandırma için yaygın bağımlılıkları uygulayın.

Yaygın Bağımlılıkları Ekleme, CoddyKit'te ücretsiz bir FastAPI Backend Development Bootcamp dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, FastAPI Backend Development Bootcamp öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. FastAPI Backend Development Bootcamp kursu toplamda 4 dersten oluşur.

Intro to Common Dependencies

FastAPI'de bağımlılıklar oldukça güçlüdür. Mantığı paylaşmanıza, kaynakları yönetmenize ve kodunuzu temiz tutmanıza yardımcı olurlar.

Yaygın bağımlılıklar, birçok API uç noktasında yeniden kullandığınız işlevler veya sınıflardır. Bu, tekrarlayan kodları önler ve uygulamanızın bakımını ve test edilmesini kolaylaştırır.

Bunları API'niz için yeniden kullanılabilir yapı taşları olarak düşünebilirsiniz.

Injecting Shared Configuration

Birçok uygulama, API anahtarları veya veritabanı URL'leri gibi küresel ayarlara ihtiyaç duyar. Yapılandırmayı enjekte ederek, bu ayarlara küresel değişkenlere başvurmak zorunda kalmadan herhangi bir uç noktada kolayca erişebilirsiniz.

Bu, yapılandırmanızı esnek ve güncellenmesi kolay tutar.

Demo: Simple Config Dependency

Basit bir ayarlar sözlüğü döndüren bir bağımlılık oluşturalım. Gerçek bir uygulamada bu, Pydantic'in BaseSettings öğesi kullanılarak ortam değişkenlerinden yüklenebilir.

from fastapi import FastAPI, Depends

app = FastAPI()

# This function acts as our dependency
def get_settings():
    return {"app_name": "CoddyKit API", "version": "1.0.0"}

@app.get("/info")
def read_info(settings: dict = Depends(get_settings)):
    return {"message": f"Welcome to {settings['app_name']} v{settings['version']}"}

# To run this:
# 1. Save as main.py
# 2. Run 'uvicorn main:app --reload'
# 3. Go to http://127.0.0.1:8000/info

Database Session Management

Backend API'ler için yaygın bir görev, bir veritabanı ile etkileşim kurmaktır. Her istek genellikle kendine özgü bir veritabanı "oturumuna" veya bağlantısına ihtiyaç duyar.

Bu oturumları her uç noktada (endpoint) manuel olarak yönetmek zahmetli ve hataya açıktır. Bir bağımlılık (dependency), bunları sizin için otomatik olarak oluşturabilir ve kapatabilir.

Demo: Database Session Dependency

Burada basitleştirilmiş bir get_db bağımlılığı örneği bulunmaktadır. Gerçek bir uygulamada bu, SQLAlchemy gibi bir ORM kullanarak bir veritabanına bağlanacaktır.

Buradaki anahtar nokta yield anahtar kelimesidir!

from fastapi import FastAPI, Depends
from typing import Generator

app = FastAPI()

# This simulates a database session.
# In a real app, this would be a SQLAlchemy session.
class MockDBSession:
    def __init__(self):
        print("Opening DB session...")
    def close(self):
        print("Closing DB session...")
    def query(self, item_id: int):
        return {"id": item_id, "name": f"Item {item_id}"}

def get_db() -> Generator:
    db = MockDBSession()
    try:
        yield db  # This is where the endpoint gets the 'db' object
    finally:
        db.close() # This runs after the request is finished

@app.get("/items/{item_id}")
def read_item(item_id: int, db: MockDBSession = Depends(get_db)):
    # The 'db' object is provided by the dependency
    return db.query(item_id)

# To run this:
# 1. Save as main.py
# 2. Run 'uvicorn main:app --reload'
# 3. Go to http://127.0.0.1:8000/items/1

The Magic of `yield`

get_db fonksiyonumuzdaki yield anahtar kelimesi çok önemlidir.

  • yield'dan önceki kod, uç nokta (endpoint) fonksiyonundan önce çalışır. Bu, kurulum içindir (örneğin, bir veritabanı bağlantısı açmak).
  • yield'dan sonraki kod, uç nokta fonksiyonundan ve onun yanıtından sonra çalışır. Bu, sonlandırma içindir (örneğin, bağlantıyı kapatmak).

Bu kalıba "yield içeren bağımlılık" veya "bağlam yöneticisi bağımlılığı" denir.

Injecting User Authentication

Çoğu API'nin, bir isteği kimin yaptığını bilmesi gerekir. Kimlik doğrulama bağımlılıkları, istek başlıklarından (API anahtarı veya JWT belirteci gibi) kullanıcı bilgilerini çıkarır ve bunları uç noktalarınız için erişilebilir hale getirir.

Bu, kimlik doğrulama mantığınızı ayrı tutar ve birçok rotada yeniden kullanılabilir olmasını sağlar.

Demo: Current User Dependency

İşte mevcut kullanıcıyı almayı simüle eden temel bir bağımlılık. Gerçek bir uygulamada bu, istek başlıklarındaki bir belirtecin doğrulanmasını gerektirirdi.

Kullanıcı kimliği doğrulanmamışsa, isteği erkenden durdurmak için bir HTTPException yükseltebilir.

from fastapi import FastAPI, Depends, HTTPException, status
from typing import Optional

app = FastAPI()

class User:
    def __init__(self, username: str, email: Optional[str] = None):
        self.username = username
        self.email = email

# This dependency simulates fetching the current user
def get_current_user(token: str = "some_valid_token") -> User:
    # In a real app, 'token' would come from request headers
    # and be validated against a database or auth service.
    if token != "some_valid_token":
        raise HTTPException(
            status_code=status.HTTP_401_UNAUTHORIZED,
            detail="Invalid authentication credentials",
            headers={"WWW-Authenticate": "Bearer"},
        )
    return User(username="jane_doe", email="jane@example.com")

@app.get("/me")
def read_current_user(current_user: User = Depends(get_current_user)):
    return {"username": current_user.username, "email": current_user.email}

# To run this:
# 1. Save as main.py
# 2. Run 'uvicorn main:app --reload'
# 3. Go to http://127.0.0.1:8000/me

Chaining & Reusing Dependencies

Bağımlılıklar diğer bağımlılıklara da bağlı olabilir! Bu, karmaşık mantığın daha küçük, yönetilebilir parçalara bölünmesine olanak tanır.

Örneğin, bir "mevcut yönetici kullanıcı" bağımlılığı, önce "mevcut kullanıcı" bağımlılığına dayanabilir ve ardından o kullanıcının yönetici yetkilerine sahip olup olmadığını kontrol edebilir.

Bu modülerlik, FastAPI'nin bağımlılık enjeksiyonunun temel bir gücüdür.

Check Your Understanding

Aşağıdaki FastAPI bağımlılığını göz önünde bulundurun:

from fastapi import HTTPException, status

def check_api_key(api_key: str = "SECRET_KEY"):
    if api_key != "VALID_API_KEY":
        raise HTTPException(
            status_code=status.HTTP_403_FORBIDDEN,
            detail="Invalid API Key"
        )
    return True

Eğer bir uç nokta (endpoint) Depends(check_api_key) kullanıyorsa ve doğru API_KEY olmadan bir istek gelirse ne olur?

Common Dependencies: Key Takeaways

FastAPI'de yaygın bağımlılıkların nasıl enjekte edileceğini inceledik:

  • Yapılandırma: Uygulama ayarlarını uç noktalar arasında kolayca paylaşın.
  • Veritabanı Oturumları: Düzgün kurulum ve sonlandırma için yield kullanarak istek başına veritabanı bağlantılarını yönetin.
  • Kullanıcı Kimlik Doğrulaması: Kullanıcıları tanımlama ve doğrulama mantığını merkezileştirin.

Bağımlılıklar, genel kaygıları ana uç nokta mantığınızdan ayrı tutarak temiz, yeniden kullanılabilir ve test edilebilir kodu teşvik eder.

Sıkça Sorulan Sorular

“Yaygın Bağımlılıkları Ekleme” dersi ücretsiz mi?

Evet — “Yaygın Bağımlılıkları Ekleme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve FastAPI Backend Development Bootcamp kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. FastAPI Backend Development Bootcamp kursu toplamda 4 dersten oluşur.

“Yaygın Bağımlılıkları Ekleme” dersinde ne öğreneceğim?

Veritabanı oturumları, kullanıcı kimlik doğrulaması veya uç noktalar arasında paylaşılan yapılandırma için yaygın bağımlılıkları uygulayın. FastAPI Backend Development Bootcamp ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

FastAPI Backend Development Bootcamp öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te FastAPI Backend Development Bootcamp, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“Yaygın Bağımlılıkları Ekleme” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu FastAPI Backend Development Bootcamp dersinde kod yazıp çalıştırabilir miyim?

Evet. Her FastAPI Backend Development Bootcamp dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. FastAPI'de Bağımlılıkları Anlama
  2. Yaygın Bağımlılıkları Ekleme
  3. Sınıf Tabanlı ve Yield Bağımlılıkları
  4. Genel Bağımlılıklar ve Alt Bağımlılıklar
← FastAPI Backend Development Bootcamp Sayfasına Dön