mirror of
https://github.com/fastapi/fastapi.git
synced 2026-02-24 10:46:42 -05:00
47 lines
892 B
Python
47 lines
892 B
Python
from fastapi import FastAPI
|
|
from pydantic import BaseModel
|
|
|
|
|
|
class DataInput(BaseModel):
|
|
description: str
|
|
data: bytes
|
|
|
|
model_config = {"val_json_bytes": "base64"}
|
|
|
|
|
|
class DataOutput(BaseModel):
|
|
description: str
|
|
data: bytes
|
|
|
|
model_config = {"ser_json_bytes": "base64"}
|
|
|
|
|
|
class DataInputOutput(BaseModel):
|
|
description: str
|
|
data: bytes
|
|
|
|
model_config = {
|
|
"val_json_bytes": "base64",
|
|
"ser_json_bytes": "base64",
|
|
}
|
|
|
|
|
|
app = FastAPI()
|
|
|
|
|
|
@app.post("/data")
|
|
def post_data(body: DataInput):
|
|
content = body.data.decode("utf-8")
|
|
return {"description": body.description, "content": content}
|
|
|
|
|
|
@app.get("/data")
|
|
def get_data() -> DataOutput:
|
|
data = "hello".encode("utf-8")
|
|
return DataOutput(description="A plumbus", data=data)
|
|
|
|
|
|
@app.post("/data-in-out")
|
|
def post_data_in_out(body: DataInputOutput) -> DataInputOutput:
|
|
return body
|