0Pricing
FastAPI Backend Development Bootcamp · Ders

Yanıt Modelleri ve Durum Kodları

Açık yanıt modelleri tanımlamayı ve çeşitli API işlemleri için uygun HTTP durum kodlarını ayarlamayı öğrenin.

Yanıt Modelleri ve Durum Kodları, 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.

API Responses: The Basics

Bir API'ye istek yaptığınızda, sunucu bir yanıt gönderir. Bu yanıt yalnızca veri değildir; aynı zamanda isteğin sonucuyla ilgili önemli bilgiler de içerir.

FastAPI, verileri genellikle JSON olarak döndürmeyi kolaylaştırır. Ancak, ne tür bir veri beklendiği ve ne olduğu konusunda açık olarak API'lerimizi daha da iyi hale getirebiliriz.

Why Use Response Models?

Yanıt modelleri API'nizin geri göndereceği verinin tam yapısını tanımlar. Bu, birkaç nedenden dolayı çok önemlidir:
  • Veri Tutarlılığı: API'nizin her zaman veriyi öngörülebilir bir formatta döndürmesini sağlar.
  • Otomatik Belgeler: FastAPI, beklenen yanıt yapısını gösteren OpenAPI belgelerini otomatik olarak oluşturur.
  • Veri Doğrulama: FastAPI, giden veriyi modelinize karşı doğrulayabilir ve göndermeden önce hataları yakalayabilir.

Defining a Simple Response Model

Yanıt yapılarını tanımlamak için Pydantic modellerini kullanırız. Ardından, uç nokta dekoratörümüzdeki response_model parametresi ile FastAPI'ye hangi modeli kullanacağını söyleriz. Bu örneği çalıştırmayı deneyin ve /docs uç noktasını kontrol edin!
from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class Product(BaseModel):
    name: str
    price: float
    is_available: bool = True

@app.get("/products/single", response_model=Product)
def get_single_product():
    return {"name": "Coffee Mug", "price": 9.99, "is_available": True}

# To run: uvicorn main:app --reload

Returning Lists with Response Models

Uç noktanız bir öğe listesi döndürürse ne olur? Bunu, `typing` modülünden Python'ın `List` türünü kullanarak `response_model`'inizde belirtebilirsiniz. Bu, FastAPI'ye Pydantic modelinizle eşleşen bir liste beklemesini söyler.
from fastapi import FastAPI
from pydantic import BaseModel
from typing import List

app = FastAPI()

class Book(BaseModel):
    title: str
    author: str

@app.get("/books", response_model=List[Book])
def get_all_books():
    return [
        {"title": "The Hobbit", "author": "J.R.R. Tolkien"},
        {"title": "1984", "author": "George Orwell"}
    ]

# To run: uvicorn main:app --reload

Understanding HTTP Status Codes

Verilerin ötesinde, her API yanıtı bir HTTP Durum Kodu içerir. Bu üç haneli sayı, istemciye isteğinin sonucu hakkında bilgi verir.
  • 2xx Başarılı: İstek başarıyla alındı, anlaşıldı ve kabul edildi. (örneğin, 200 Tamam, 201 Oluşturuldu)
  • 4xx İstemci Hatası: İstemci bir hata yaptı. (örneğin, 400 Kötü İstek, 404 Bulunamadı)
  • 5xx Sunucu Hatası: Sunucu, açıkça geçerli bir isteği yerine getiremedi. (örneğin, 500 Dahili Sunucu Hatası)

FastAPI's Default Status Codes

FastAPI, HTTP yöntemine göre otomatik olarak varsayılan durum kodları atar:

  • GET: 200 OK
  • POST: 200 OK (ancak genellikle 201 Created daha iyidir)
  • PUT/DELETE: 200 OK

Bu varsayılanlar çalışsa da, durum kodlarını açıkça belirtmek API'nizi daha kesin ve kullanıcı dostu hale getirir.

Setting Custom Success Codes (201)

Yeni bir kaynak oluşturan işlemler (POST isteği gibi) için 201 Created durum kodunu döndürmek en iyi uygulamadır. Bunu doğrudan yol işlemi dekoratörünüzde belirtebilirsiniz. Bunu çalıştırın ve ağ yanıt kodunu gözlemleyin!
from fastapi import FastAPI, status
from pydantic import BaseModel

app = FastAPI()

class NewItem(BaseModel):
    name: str
    description: str | None = None

@app.post("/items", status_code=status.HTTP_201_CREATED)
def create_item(item: NewItem):
    # Imagine saving 'item' to a database here
    return {"message": "Item created successfully", "item": item}

# To run: uvicorn main:app --reload

Handling Errors with HTTPException (404)

İstenen bir kaynak bulunamadığında, bir 404 Bulunamadı durumu döndürmelisiniz. FastAPI, bu hataları kolayca oluşturmak için HTTPException sağlar. Bu, yürütmeyi durdurur ve standart bir JSON hata yanıtı döndürür.
from fastapi import FastAPI, HTTPException, status

app = FastAPI()

fake_items_db = {"foo": {"name": "Foo"}, "bar": {"name": "Bar"}}

@app.get("/items/{item_id}")
def read_item(item_id: str):
    if item_id not in fake_items_db:
        raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail="Item not found")
    return fake_items_db[item_id]

# To run: uvicorn main:app --reload

Combining Models & Status Codes

Yanıt modellerini ve özel durum kodlarını sıklıkla birlikte kullanacaksınız. Örneğin, başarılı bir güncelleme, güncellenmiş kaynakla birlikte bir 200 OK döndürebilirken, başarısız bir güncelleme 400 Bad Request döndürebilir. Bu, sağlam ve öngörülebilir API davranışı oluşturur.
from fastapi import FastAPI, status
from pydantic import BaseModel

app = FastAPI()

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

@app.put("/users/{user_id}", response_model=UserOut, status_code=status.HTTP_200_OK)
def update_user(user_id: int, new_username: str):
    # Imagine updating user in DB
    if user_id == 1:
        return {"id": user_id, "username": new_username}
    return {"id": user_id, "username": "default_user"}

# To run: uvicorn main:app --reload

Quick Check: Status Codes

Bir istemci, yeni bir kullanıcı oluşturmak için bir POST isteği gönderir. Sunucu isteği başarıyla işler ve kullanıcı verilerini kaydeder. Döndürülecek en uygun HTTP durum kodu hangisidir?

Recap: Clear Responses

Bu derste, FastAPI yanıtlarınızı nasıl net ve öngörülebilir hale getireceğinizi öğrendiniz. Şunları ele aldık:
  • Tutarlı veri ve otomatik dokümantasyon için Pydantic ile yanıt modelleri tanımlama.
  • 201 Oluşturuldu gibi HTTP durum kodlarını anlama ve açıkça ayarlama veya 404 Bulunamadı için HTTPException ile hataları ele alma.
Bu uygulamalar, API'nizin kullanılabilirliğini ve sağlamlığını büyük ölçüde artırır.

Sıkça Sorulan Sorular

“Yanıt Modelleri ve Durum Kodları” dersi ücretsiz mi?

Evet — “Yanıt Modelleri ve Durum Kodları” 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.

“Yanıt Modelleri ve Durum Kodları” dersinde ne öğreneceğim?

Açık yanıt modelleri tanımlamayı ve çeşitli API işlemleri için uygun HTTP durum kodlarını ayarlamayı öğrenin. 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.

“Yanıt Modelleri ve Durum Kodları” 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. İstek Gövdesi için Pydantic Modelleri
  2. Yanıt Modelleri ve Durum Kodları
  3. Form Verileri ve Dosya Yüklemeleri
  4. Üst Bilgiler, Çerezler ve Özel Yanıtlar
← FastAPI Backend Development Bootcamp Sayfasına Dön