CodeBlanks Logo Icon CodeBlanks

Path parametresi

/items/{id} ile yol parametresini öğrenirsin.

Path parametresi

Yol içinde {isim} biçimindeki yer tutucu, bir path parametresi olur. İşlev parametresi aynı isimle eşleşir; FastAPI değeri URL'den çıkarıp geçirir.

@app.get("/items/{item_id}")
def read_item(item_id: int):
    return {"item_id": item_id}

Tür int verilirse FastAPI otomatik dönüştürür. Uygun değilse 422 yanıtı döner. Bu, kaynak kimliği alan yollar için idealdir.

tür dönüştürme

Path parametresine int, str, float gibi türler verirsin. FastAPI URL'den gelen dizeyi bu türe çevirir; çevrilemezse 422 yanıtı döner.

@app.get("/items/{item_id}")
def read_item(item_id: int):
    # item_id burada bir int
    return {"item_id": item_id, "tipi": type(item_id).__name__}

Tür olmadan parametre str kabul edilir. Tür vermek, doğrulamayı ve dokümantasyonu güçlendirir.

Uygulama Path parametreli GET yolu

from fastapi import FastAPI ve from fastapi.testclient import TestClient ile başla. app = FastAPI() tanımla. @app.get("/items/{item_id}") dekoratörüyle def read_item(item_id: int): tanımla ve return {"item_id": item_id} yapsın. client = TestClient(app) ile istemci oluştur. print(client.get("/items/5").text) ile yanıt gövdesini yazdır.

Başlangıç kodu

main.py
# fastapi'den FastAPI'yi içe aktar
# TestClient'ı içe aktar
# app'i tanımla
# '/items/{item_id}' yolu için bir get işlevi ekle (item_id: int)
# TestClient ile istemci oluştur, '/items/5' yolunu sorgula ve gövdeyi yazdır

Örnek çözüm

main.py
from fastapi import FastAPI
from fastapi.testclient import TestClient

app = FastAPI()

@app.get("/items/{item_id}")
def read_item(item_id: int):
    return {"item_id": item_id}

client = TestClient(app)
print(client.get("/items/5").text)

Beklenen çıktı

{"item_id":5}

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 @app.get("/items/{item_id}") yolunda item_id nasıl alınır?

  • İşlev parametresiyle Doğru cevap
  • Global değişkenle
  • Sorgu dizesinden
  • Dosyadan okuyarak

Açıklama: item_id, aynı isimli işlev parametresiyle alınır.

2 path parametre yolunu tamamla

Soru
@app.get("/items/____")
def read_item(item_id: int):
Cevap
@app.get("/items/{item_id}")
def read_item(item_id: int):

Açıklama: {item_id} yol parametresi yer tutucusudur.

3 Path parametresi kavramlarını eşleştir

Kavram Anlamı
{item_id} Yer tutucudur
item_id: int Tür dönüşümüdür
422 Doğrulama hatasıdır
/items/{id} Yol şablonudur

İleri seviye bölümündeki tüm dersler