0Pricing
Python Academy · Ders

Yol Parametreleri, Sorgu Parametreleri ve İstek Gövdeleri

Pydantic ile tür belirtilmiş parametreler ve istek gövdesi şemaları tanımlayın.

Yol Parametreleri, Sorgu Parametreleri ve İstek Gövdeleri, CoddyKit'te ücretsiz bir Python Academy 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, Python Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Python Academy kursu toplamda 4 dersten oluşur.

Yol Parametresi Doğrulama

Path() kullanarak yol parametrelerine doğrulayıcılar ekleyin: ge, le, gt ve lt kısıtlarını ayarlayın.

from fastapi import FastAPI, Path
app = FastAPI()

@app.get("/items/{item_id}")
def get_item(item_id: int = Path(ge=1, le=1000)):
    return {"item_id": item_id}

# GET /items/0  → 422 (must be >= 1)

Sorgu Parametresi Doğrulama

Sorgu parametrelerine doğrulama, varsayılan değerler, diğer adlar ve açıklamalar eklemek için Query() kullanın.

from fastapi import FastAPI, Query
app = FastAPI()

@app.get("/search")
def search(
    q: str = Query(min_length=2, max_length=50),
    page: int = Query(default=1, ge=1),
):
    return {"q": q, "page": page}

İsteğe Bağlı Sorgu Parametreleri

Bir sorgu parametresini isteğe bağlı yapmak için | None = None (Python 3.10+) veya Optional[str] = None kullanın.

from fastapi import FastAPI
app = FastAPI()

@app.get("/users")
def list_users(
    dept: str | None = None,
    active: bool = True
):
    return {"dept": dept, "active": active}

# GET /users → dept=None, active=True
# GET /users?dept=HR&active=false

Tek Sorgu Parametresi için Birden Çok Değer

Tek bir sorgu parametresi için list[str] ve Query() ile bir değer listesi kabul edin.

from fastapi import FastAPI, Query
from typing import Annotated
app = FastAPI()

@app.get("/filter")
def filter_items(tags: Annotated[list[str], Query()] = []):
    return {"tags": tags}

# GET /filter?tags=python&tags=web

İç İçe İstek Gövdeleri

Pydantic modelleri iç içe yerleştirilebilir. FastAPI, iç içe JSON verilerini otomatik olarak işler.

from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()

class Address(BaseModel):
    street: str
    city: str

class User(BaseModel):
    name: str
    address: Address

@app.post("/users")
def create_user(user: User):
    return user.model_dump()

Pydantic'te Alan Kısıtları

Tek tek alanlara kısıtlar, varsayılan değerler ve açıklamalar eklemek için model içinde Field() kullanın.

from pydantic import BaseModel, Field

class Product(BaseModel):
    name: str = Field(min_length=1, max_length=100)
    price: float = Field(gt=0)
    quantity: int = Field(ge=0, default=0, description="Items in stock")

İstek Gövdesi + Yol + Sorgu Birlikte

Üç parametre türünü de tek bir uç noktada birleştirin. FastAPI bunları konumlarına göre ayırt eder: URL'de yol, basit türlerde sorgu, modellerde gövde.

from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()

class ItemUpdate(BaseModel):
    name: str
    price: float

@app.put("/shops/{shop_id}/items/{item_id}")
def update_item(
    shop_id: int,
    item_id: int,
    item: ItemUpdate,
    notify: bool = False,
):
    return {"shop": shop_id, "item": item_id,
            "data": item.model_dump(), "notify": notify}

Dosya Yüklemeleri

Dosya yüklemelerini kabul etmek için UploadFile ve File() kullanın. İçeriğe await file.read() ile erişin.

from fastapi import FastAPI, UploadFile, File
app = FastAPI()

@app.post("/upload")
async def upload(file: UploadFile = File(...)):
    content = await file.read()
    return {"filename": file.filename, "size": len(content)}

Form Verileri

HTML form verilerini (application/x-www-form-urlencoded veya multipart/form-data) kabul etmek için Form() kullanın.

# pip install python-multipart
from fastapi import FastAPI, Form
app = FastAPI()

@app.post("/login")
def login(username: str = Form(...), password: str = Form(...)):
    return {"username": username}

İstek Doğrulama Özeti

FastAPI, tüm parametre türlerini otomatik olarak doğrular. Geçersiz girdiler, işleyiciniz çağrılmadan önce ayrıntılı bir hatayla HTTP 422 döndürür.

# Auto-validated:
# - Path params: type coercion, Path() constraints
# - Query params: Query() constraints, type coercion
# - Request body: Pydantic model validation
# - All errors → HTTP 422 Unprocessable Entity
# - No manual validation needed

Takma Ad ve Kullanımdan Kaldırma

İstekte farklı bir ad kabul etmek için Query() veya Field() içinde alias= kullanın; eski parametreleri işaretlemek için deprecated=True kullanın.

from fastapi import FastAPI, Query
app = FastAPI()

@app.get("/items")
def get_items(
    q: str | None = Query(default=None, alias="search-query"),
    old: str | None = Query(default=None, deprecated=True),
):
    return {"q": q, "old": old}

# GET /items?search-query=python

Hızlı Kontrol

FastAPI, yol parametresiyle sorgu parametresini ve istek gövdesini nasıl ayırt eder?

Özet

Parametre kısıtları için Path()/Query() kullanın. Karmaşık gövdeler için Pydantic modellerini iç içe yerleştirin. Yol, sorgu ve gövde parametrelerini özgürce birleştirin. UploadFile dosyaları, Form() ise HTML formlarını işler. FastAPI, işleyiciniz çalışmadan önce her şeyi doğrular.

Sıkça Sorulan Sorular

“Yol Parametreleri, Sorgu Parametreleri ve İstek Gövdeleri” dersi ücretsiz mi?

Evet — “Yol Parametreleri, Sorgu Parametreleri ve İstek Gövdeleri” 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 Python Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Python Academy kursu toplamda 4 dersten oluşur.

“Yol Parametreleri, Sorgu Parametreleri ve İstek Gövdeleri” dersinde ne öğreneceğim?

Pydantic ile tür belirtilmiş parametreler ve istek gövdesi şemaları tanımlayın. Python Academy 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.

Python Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Python Academy, 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.

“Yol Parametreleri, Sorgu Parametreleri ve İstek Gövdeleri” 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 Python Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Python Academy 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 Proje Kurulumu ve İlk Uç Nokta
  2. Yol Parametreleri, Sorgu Parametreleri ve İstek Gövdeleri
  3. Bağımlılık Enjeksiyonu ve Kimlik Doğrulama
  4. Asenkron Uç Noktalar ve Veritabanı Entegrasyonu
← Python Academy Sayfasına Dön