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
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?
- 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
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 --reloadReturning Lists with Response Models
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 --reloadUnderstanding HTTP Status Codes
- 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 genellikle201 Createddaha 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)
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 --reloadHandling Errors with HTTPException (404)
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 --reloadCombining Models & Status Codes
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 --reloadQuick 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
- Tutarlı veri ve otomatik dokümantasyon için Pydantic ile yanıt modelleri tanımlama.
201 Oluşturuldugibi HTTP durum kodlarını anlama ve açıkça ayarlama veya404 BulunamadıiçinHTTPExceptionile hataları ele alma.
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
- İstek Gövdesi için Pydantic Modelleri
- Yanıt Modelleri ve Durum Kodları
- Form Verileri ve Dosya Yüklemeleri
- Üst Bilgiler, Çerezler ve Özel Yanıtlar