42 lines
1.0 KiB
Python
42 lines
1.0 KiB
Python
|
from fastapi import FastAPI, Request
|
||
|
|
||
|
app = FastAPI()
|
||
|
|
||
|
|
||
|
def magic_data_reader(raw_body: bytes):
|
||
|
return {
|
||
|
"size": len(raw_body),
|
||
|
"content": {
|
||
|
"name": "Maaaagic",
|
||
|
"price": 42,
|
||
|
"description": "Just kiddin', no magic here. ✨",
|
||
|
},
|
||
|
}
|
||
|
|
||
|
|
||
|
@app.post(
|
||
|
"/items/",
|
||
|
openapi_extra={
|
||
|
"requestBody": {
|
||
|
"content": {
|
||
|
"application/json": {
|
||
|
"schema": {
|
||
|
"required": ["name", "price"],
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"name": {"type": "string"},
|
||
|
"price": {"type": "number"},
|
||
|
"description": {"type": "string"},
|
||
|
},
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"required": True,
|
||
|
},
|
||
|
},
|
||
|
)
|
||
|
async def create_item(request: Request):
|
||
|
raw_body = await request.body()
|
||
|
data = magic_data_reader(raw_body)
|
||
|
return data
|