0Pricing
Python Academy · Ders

FastAPI Proje Kurulumu ve İlk Uç Nokta

FastAPI'yi yükleyin, bir proje oluşturun ve ilk GET uç noktanızı yazın.

FastAPI Proje Kurulumu ve İlk Uç Nokta, CoddyKit'te ücretsiz bir Python Academy dersidir. Bu, 4 dersinin 1. 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.

FastAPI Nedir?

FastAPI, REST API'leri oluşturmak için kullanılan modern bir Python web çatısıdır. Otomatik OpenAPI belgeleri, Pydantic aracılığıyla tür denetimli istek/yanıt modelleri ve asenkron yapıya özgü performans sağlar.

# pip install fastapi uvicorn
from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def root():
    return {"message": "Hello, FastAPI"}

Sunucuyu Çalıştırma

uvicorn ile çalıştırın. --reload seçeneği, geliştirme sırasında kod değişikliklerinde sunucuyu otomatik olarak yeniden başlatır.

# main.py
from fastapi import FastAPI
app = FastAPI()

@app.get("/health")
def health(): return {"status": "ok"}

# Terminal:
# uvicorn main:app --reload
# → http://127.0.0.1:8000
# → http://127.0.0.1:8000/docs  (Swagger UI)

HTTP Yöntemleri

Rota işlevlerini @app.get, @app.post, @app.put, @app.delete veya @app.patch ile dekore edin.

from fastapi import FastAPI
app = FastAPI()

@app.get("/items")
def list_items(): return []

@app.post("/items")
def create_item(): return {"id": 1}

@app.delete("/items/{item_id}")
def delete_item(item_id: int): return {"deleted": item_id}

Yol Parametreleri

Yol parametrelerini rota dizesinde {name} ile, tür açıklamaları içeren işlev bağımsız değişkenleri olarak tanımlayın.

from fastapi import FastAPI
app = FastAPI()

@app.get("/users/{user_id}")
def get_user(user_id: int):
    return {"user_id": user_id, "name": "Alice"}

# GET /users/42  → {"user_id": 42, "name": "Alice"}

Sorgu Parametreleri

Yolda yer almayan işlev parametreleri sorgu parametrelerine dönüşür.

from fastapi import FastAPI
app = FastAPI()

@app.get("/items")
def list_items(skip: int = 0, limit: int = 10, q: str | None = None):
    return {"skip": skip, "limit": limit, "q": q}

# GET /items?skip=5&limit=20&q=search

Pydantic İstek Gövdesi

Bir JSON istek gövdesini tanımlamak ve doğrulamak için parametre türü olarak bir Pydantic BaseModel kullanın.

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class Item(BaseModel):
    name: str
    price: float
    in_stock: bool = True

@app.post("/items")
def create_item(item: Item):
    return {"received": item.model_dump()}

Pydantic Doğrulama Hataları

İstek gövdesi şemayla eşleşmezse FastAPI, ayrıntılı bir hata mesajıyla birlikte 422 Unprocessable Entity yanıtını otomatik olarak döndürür.

# POST /items with body {"name": 123}
# → HTTP 422 Unprocessable Entity
# {
#   "detail": [
#     {
#       "type": "string_type",
#       "loc": ["body","name"],
#       "msg": "Input should be a valid string"
#     }
#   ]
# }

Yanıt Modelleri

Uç noktanın ne döndüreceğini belirtmek için response_model= kullanın. FastAPI yanıtı doğrular ve fazladan alanları filtreler.

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class UserOut(BaseModel):
    id: int
    name: str

@app.get("/users/{uid}", response_model=UserOut)
def get_user(uid: int):
    return {"id": uid, "name": "Alice", "password": "secret"}  # password filtered out

Durum Kodları

Varsayılan başarılı durum kodunu status_code= ile ayarlayın. Yaygın kodları fastapi.status içinden içe aktarın.

from fastapi import FastAPI, status
app = FastAPI()

@app.post("/items", status_code=status.HTTP_201_CREATED)
def create_item():
    return {"id": 1}

# HTTP 201 Created is returned on success

HTTPException

Özel bir durum kodu ve ayrıntı mesajı içeren hata yanıtı döndürmek için HTTPException yükseltin.

from fastapi import FastAPI, HTTPException
app = FastAPI()

fake_db = {1: "Alice"}

@app.get("/users/{uid}")
def get_user(uid: int):
    if uid not in fake_db:
        raise HTTPException(status_code=404, detail="User not found")
    return {"name": fake_db[uid]}

Otomatik Belgelendirme

FastAPI, rota açıklamalarınızdan otomatik olarak /docs adresinde Swagger UI, /redoc adresinde ise ReDoc oluşturur.

# After starting with uvicorn:
# http://localhost:8000/docs     — Swagger UI (try the API live)
# http://localhost:8000/redoc    — ReDoc (clean docs view)
# http://localhost:8000/openapi.json  — raw OpenAPI schema

Hızlı Kontrol

FastAPI'de gerekli bir JSON istek gövdesi parametresini nasıl tanımlarsınız?

Özet

FastAPI rotaları, dekoratörlerle tanımlanan işlevlerdir: yol parametreleri URL'de, sorgu parametreleri türü belirtilmiş bağımsız değişkenler olarak, istek gövdeleri ise Pydantic modelleri olarak tanımlanır. Hatalar için HTTPException yükseltin. Swagger UI otomatik olarak /docs adresinde oluşturulur.

Sıkça Sorulan Sorular

“FastAPI Proje Kurulumu ve İlk Uç Nokta” dersi ücretsiz mi?

Evet — “FastAPI Proje Kurulumu ve İlk Uç Nokta” 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.

“FastAPI Proje Kurulumu ve İlk Uç Nokta” dersinde ne öğreneceğim?

FastAPI'yi yükleyin, bir proje oluşturun ve ilk GET uç noktanızı yazı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 1. dersidir.

“FastAPI Proje Kurulumu ve İlk Uç Nokta” 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