Я хотел бы иметь динамическое обязательное тело в FastApi.
Я объясняю:
from fastapi import FastAPI, Body
from pydantic import BaseModel
app = FastAPI()
class Parameters(BaseModel):
platform: str
country: str
@app.put("/myroute")
async def provision_instance(*, parameters: Parameters = Body(...)):
do_something
if __name__ == '__main__':
uvicorn.run(app, host="0.0.0.0", port=80)
Здесь мое тело определяется вручную в классе Parameters с двумя атрибутами: platform и страна. В будущем эти атрибуты будут поступать из файла конфигурации, и их будет более двух. Поэтому мне нужно будет создавать их автоматически на лету.
Например, в файле конфигурации я мог бы иметь:
---
parameters:
application:
description: "Name of the application"
type: string
platform:
description: "Name of the platform"
type: string
country:
description: "Name of the country"
type: string
Как я мог бы иметь в этом контексте переменное количество параметров, необходимых в теле? Должен ли я найти способ дать моему классу параметров переменное количество атрибутов?