pythonasyncioapiasyncfastapiframeworkjsonjson-schemaopenapiopenapi3pydanticpython-typespython3redocreststarletteswaggerswagger-uiuvicornweb
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
22 lines
553 B
22 lines
553 B
from typing import Union
|
|
|
|
from fastapi import FastAPI, File, UploadFile
|
|
from typing_extensions import Annotated
|
|
|
|
app = FastAPI()
|
|
|
|
|
|
@app.post("/files/")
|
|
async def create_file(file: Annotated[Union[bytes, None], File()] = None):
|
|
if not file:
|
|
return {"message": "No file sent"}
|
|
else:
|
|
return {"file_size": len(file)}
|
|
|
|
|
|
@app.post("/uploadfile/")
|
|
async def create_upload_file(file: Union[UploadFile, None] = None):
|
|
if not file:
|
|
return {"message": "No upload file sent"}
|
|
else:
|
|
return {"filename": file.filename}
|
|
|