FastAPI 上是否可以有一个带有默认值的必需查询参数?

maz*_*azs 2 python swagger openapi fastapi

我试图设置一个必需的查询参数,但在 FastAPI 上给它一个默认值,但我在他们的用户指南上没有找到任何内容。

在 openapi 上,它会是这样的:

parameters:
      - name: "some_name"
        in: "query"
        description: "a description"
        required: true
        type: "string"
        default: "First"
        enum:
        - "First"
        - "Second"
        - "Third"
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,required 被分配为 true 并且我有一个默认值(“first”)使用 fastapi 我有这个:

class ModelNames(str, Enum):
  first = "first"
  second = "second"
  third = "third"


@app.post("/path")
async def this_function(
    modelInstance = Query(
      default=Required, # i would like to somehow assign "first" and Required to default 
      description="a description"
    )
  ):
  return None
Run Code Online (Sandbox Code Playgroud)

我尝试过直接分配“first”,但它使其成为可选的。

Dor*_*rba 5

根据设计,必需的参数无法获得默认值

你不能。

如果要为自定义示例值的副作用定义默认值,请改用 example 参数。

https://fastapi.tiangolo.com/tutorial/schema-extra-example/#example-and-examples-in-openapi