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.

42 lines
739 B

from typing import Any
from fastapi import UploadFile
from pydantic import BaseModel
class BasePayload(BaseModel):
kind: str
class FooPayload(BasePayload):
kind: str = "foo"
extra_foo: str
class BarPayload(BasePayload):
kind: str = "bar"
extra_bar: str
class FooFilePayload(BasePayload):
kind: str = "foo"
extra_foo: str
blob: UploadFile
class BarFilePayload(BasePayload):
kind: str = "bar"
extra_bar: str
blob: UploadFile
def openapi_request_body_schema_ref(
schema: dict[str, Any],
*,
path: str,
method: str = "post",
content_type: str,
) -> str:
return schema["paths"][path][method]["requestBody"]["content"][content_type][
"schema"
]["$ref"]