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.

4.0 KiB

路径操作配置

你可以向你的路径操作装饰器传递多个参数来进行配置。

/// warning | 警告

注意,这些参数是直接传给路径操作装饰器的,而不是传给你的路径操作函数

///

响应状态码

你可以定义(HTTP)status_code,用于你的路径操作响应中。

你可以直接传入 int 代码,比如 404

但如果你记不住每个数字代码的用途,你可以使用 status 中的快捷常量:

{* ../../docs_src/path_operation_configuration/tutorial001_py310.py hl[1,15] *}

该状态码会用于响应,并会被添加到 OpenAPI schema 中。

/// note | 技术细节

你也可以使用 from starlette import status

FastAPI 提供了与 starlette.status 相同的 fastapi.status,只是为了方便你(开发者)。但它直接来自 Starlette。

///

标签

你可以为你的路径操作添加标签:传入参数 tags,其值为由 str 组成的 list(通常只有一个 str):

{* ../../docs_src/path_operation_configuration/tutorial002_py310.py hl[15,20,25] *}

它们会被添加到 OpenAPI schema,并被自动文档界面使用:

使用 Enum 的标签

如果你有一个大型应用,你可能最终会累积多个标签,并且你会希望确保对相关的路径操作始终使用相同的标签

在这些情况下,把标签存到 Enum 中可能是有意义的。

FastAPI 对此的支持方式和普通字符串一样:

{* ../../docs_src/path_operation_configuration/tutorial002b_py39.py hl[1,8:10,13,18] *}

摘要和描述

你可以添加 summarydescription

{* ../../docs_src/path_operation_configuration/tutorial003_py310.py hl[17:18] *}

从 docstring 获取描述

由于描述通常很长并且会跨越多行,你可以在函数的 docstring 中声明路径操作的描述,FastAPI 会从那里读取。

你可以在 docstring 中编写 Markdown,它会被正确解释并显示(会考虑 docstring 的缩进)。

{* ../../docs_src/path_operation_configuration/tutorial004_py310.py hl[17:25] *}

它会用于交互式文档:

响应描述

你可以使用参数 response_description 来指定响应描述:

{* ../../docs_src/path_operation_configuration/tutorial005_py310.py hl[18] *}

/// info | 信息

注意,response_description 专门指响应,而 description 通常指路径操作本身。

///

/// check | 检查

OpenAPI 规定每个路径操作都需要一个响应描述。

因此,如果你没有提供,FastAPI 会自动生成一个 "Successful response"。

///

弃用路径操作

如果你需要将某个路径操作标记为 deprecated,但又不移除它,可以传入参数 deprecated

{* ../../docs_src/path_operation_configuration/tutorial006_py39.py hl[16] *}

它会在交互式文档中被清晰地标记为已弃用:

看看已弃用和未弃用的路径操作分别是什么样的:

小结

你可以通过向路径操作装饰器传递参数,轻松地为你的路径操作进行配置并添加元数据。