3 changed files with 47 additions and 0 deletions
@ -0,0 +1,46 @@ |
|||||
|
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 |
||||
Loading…
Reference in new issue