๐จ ๐จ ๐¶
๐โ ๐ โ FastAPI โก ๐ ๏ธ ๐ ๐ช ๐ ๐จ ๐ ๐ โช๏ธโก๏ธ โซ๏ธ: dict
, list
, Pydantic ๐ท, ๐ฝ ๐ท, โ๏ธ.
๐ข, FastAPI ๐ ๐ ๐ ๐ ๐จ ๐ฒ ๐ป โ๏ธ jsonable_encoder
๐ฌ ๐ป ๐ ๐ข.
โคด๏ธ, โ
๐, โซ๏ธ ๐ ๐ฎ ๐ ๐ป-๐ ๐ฝ (โ
dict
) ๐ JSONResponse
๐ ๐ โ๏ธ ๐จ ๐จ ๐ฉโ๐ป.
โ๏ธ ๐ ๐ช ๐จ JSONResponse
๐ โช๏ธโก๏ธ ๐ โก ๐ ๏ธ.
โซ๏ธ ๐ช โ , ๐ผ, ๐จ ๐ ๐ โ๏ธ ๐ช.
๐จ Response
¶
๐, ๐ ๐ช ๐จ ๐ Response
โ๏ธ ๐ ๐ง-๐ โซ๏ธ.
Tip
JSONResponse
โซ๏ธ ๐ง-๐ Response
.
& ๐โ ๐ ๐จ Response
, FastAPI ๐ ๐ถโโ๏ธ โซ๏ธ ๐.
โซ๏ธ ๐ ๐ซ ๐ ๐ฝ ๐ ๏ธ โฎ๏ธ Pydantic ๐ท, โซ๏ธ ๐ ๐ซ ๐ ๐ ๐ ๐, โ๏ธ.
๐ ๐ค ๐ ๐ ๐ช. ๐ ๐ช ๐จ ๐ ๐ ๐, ๐ ๐ ๐ฝ ๐ โ๏ธ ๐ฌ, โ๏ธ.
โ๏ธ jsonable_encoder
Response
¶
โฉ๏ธ FastAPI ๐ซ ๐ ๐ Response
๐ ๐จ, ๐ โ๏ธ โ ๐ญ โซ๏ธ ๐ ๐ โซ๏ธ.
๐ผ, ๐ ๐ซ๐ ๐ฎ Pydantic ๐ท JSONResponse
๐ต ๐ฅ ๐ญ โซ๏ธ dict
โฎ๏ธ ๐ ๐ ๐ (๐ datetime
, UUID
, โ๏ธ) ๐ ๐ป-๐ ๐.
๐ ๐ผ, ๐ ๐ช โ๏ธ jsonable_encoder
๐ ๐ ๐ โญ ๐ถโโ๏ธ โซ๏ธ ๐จ:
from datetime import datetime
from typing import Union
from fastapi import FastAPI
from fastapi.encoders import jsonable_encoder
from fastapi.responses import JSONResponse
from pydantic import BaseModel
class Item(BaseModel):
title: str
timestamp: datetime
description: Union[str, None] = None
app = FastAPI()
@app.put("/items/{id}")
def update_item(id: str, item: Item):
json_compatible_item_data = jsonable_encoder(item)
return JSONResponse(content=json_compatible_item_data)
๐ก โน
๐ ๐ช โ๏ธ from starlette.responses import JSONResponse
.
FastAPI ๐ ๐ starlette.responses
fastapi.responses
๐ช ๐, ๐ฉโ๐ป. โ๏ธ ๐
๐ช ๐จ ๐ ๐ โช๏ธโก๏ธ ๐.
๐ฌ ๐ Response
¶
๐ผ ๐ ๐ฆ ๐ ๐ ๐ ๐ช, โ๏ธ โซ๏ธ ๐ซ ๐ถ โ , ๐ ๐ช โ๏ธ ๐จ item
๐, & FastAPI ๐ ๐ฎ โซ๏ธ JSONResponse
๐, ๐ญ โซ๏ธ dict
, โ๏ธ. ๐ ๐ ๐ข.
๐, โก๏ธ ๐ โ ๐ ๐ช โ๏ธ ๐ ๐จ ๐ ๐จ.
โก๏ธ ๐ฌ ๐ ๐ ๐ ๐จ ๐ ๐จ.
๐ ๐ช ๐ฎ ๐ ๐ ๐ ๐ป, ๐ฎ โซ๏ธ Response
, & ๐จ โซ๏ธ:
from fastapi import FastAPI, Response
app = FastAPI()
@app.get("/legacy/")
def get_legacy_data():
data = """<?xml version="1.0"?>
<shampoo>
<Header>
Apply shampoo here.
</Header>
<Body>
You'll have to use soap here.
</Body>
</shampoo>
"""
return Response(content=data, media_type="application/xml")
๐¶
๐โ ๐ ๐จ Response
๐ ๐ฎ ๐ ๐ซ โ, ๐ (๐ป), ๐ซ ๐ ๐.
โ๏ธ ๐ ๐ช ๐ โซ๏ธ ๐ฌ ๐ ๐จ ๐.
๐ ๐ช ๐ โช ๐ โ โ๏ธ/๐ฃ ๐ ๐ Response
โ โช โ๏ธ ๐ง ๐ฝ ๐ ๏ธ, ๐งพ, โ๏ธ.