跳转至

迁移指南

迁移到 APIFlask 2.x

input 数据使用关键字参数

在 APIFlask 2.x 中,通过 input 装饰器传递的数据更改为名为 {location}_data 的关键字参数。例如,JSON 输入的名称将是 json_data

@app.post('/pets')
@app.input(PetQuery, location='query')
@app.input(PetIn)  # 等同于 app.input(PetIn, location='json')
def create_pet(query_data, json_data):
    pass

你可以使用 arg_name 设置自定义参数名称:

@app.post('/pets')
@app.input(PetQuery, location='query')
@app.input(PetIn, arg_name='pet')
def create_pet(query_data, pet):
    pass

替换 /redocredoc_path 参数

从 APIFlask 2.x 开始,所有的 OpenAPI 文档都可以通过 /docs 访问。你可以使用 docs_ui 参数将文档界面更改为 ReDoc,并使用 docs_path 参数更改文档路径:

from apiflask import APIFlask

app = APIFlask(__name__, docs_ui='redoc', docs_path='/redoc')

@app.doc 中将 tag 参数替换为 tags

tag 参数已被移除,应该使用 tags。始终为 tags 传递一个列表。

@app.doc(tags=['foo'])

@app.auth_required 中将 role 参数替换为 roles

role 参数已被移除,应该使用 roles。始终为 roles 传递一个列表。

@app.doc(auth_required=['admin'])

对于 204 响应始终设置 output(status_code=204)

在 APIFlask 2.x 中,空模式(schema)有了不同的含义,并且不会将状态码设置为 204。

要返回 204 响应,你必须设置状态码:

@app.get('/nothing')
@app.output({}, status_code=204)
def nothing():
    return ''