如何在 FastAPI Swagger API 中按方法类型对方法进行排序?

Mat*_*one 3 python swagger fastapi

如何在 FastAPI Swagger 自动文档中设置 API 方法的排序顺序?我希望所有方法按类型分组(GET、POST、PUT、DELETE)。

这个答案展示了如何在 Java 中做到这一点。我怎样才能用Python做到这一点?

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def list_all_components():
    pass

@app.get("/{component_id}")
def get_component(component_id: int):
    pass

@app.post("/")
def create_component():
    pass

@app.put("/{component_id}")
def update_component(component_id: int):
    pass

@app.delete("/{component_id}")
def delete_component(component_id: int):
    pass
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

Mat*_*ndh 6

您可以通过 FastAPI 构造函数配置 Swagger UI 参数

app = FastAPI(swagger_ui_parameters={"operationsSorter": "method"})
Run Code Online (Sandbox Code Playgroud)

完整的参数列表可以在 swagger 文档中找到

在此输入图像描述

  • 我猜在这种情况下您必须实现自定义 openapi 模式并重新排序从 `get_openapi` 返回的路由,如下所示:https://fastapi.tiangolo.com/advanced/extending-openapi/#generate-the -openapi-schema - 您还可以在 Javascript 中实现自定义排序,并将该函数提供给操作排序器,但您不能从 `swagger_ui_parameters` 属性中包含它 - 所以我认为您必须为此创建一个自定义 openapi 端点以及。稍后我可能有时间进一步深入研究。 (2认同)