feat: 从 FastAPI 导出 openapi.json 并渲染为 API 文档
通过 vitepress-openapi 插件,在 VitePress 文档中实现基于 openapi.json 的 API 文档。 这样实现的 API 文档可以从最新版本的代码库中提取路由信息,继而实现自动集成。 --- 同时,通过 Kimi 和 Deepseek 实现并审查了一个对 Google 风格 docstring 的解析函数。 该函数可以从 Google 风格的 docstring 中提取参数文档并按 openapi 规范重新整理它们。 --- 增加了 nyahome openapi 命令用来导出 openapi.json。 增加了 task openapi-docs 命令用来准备未来的持续集成。
This commit is contained in:
@@ -3,6 +3,8 @@
|
||||
避免在此文件中引用 router 和 service 模块内的代码。
|
||||
"""
|
||||
|
||||
from typing import Annotated
|
||||
|
||||
import typer
|
||||
from rich.console import Console
|
||||
|
||||
@@ -54,5 +56,18 @@ def run() -> None:
|
||||
)
|
||||
|
||||
|
||||
@app.command()
|
||||
def openapi(
|
||||
path: Annotated[str, typer.Argument(help="导出的 json 格式 openapi.json 应该保存为……")] = "openapi.json",
|
||||
) -> None:
|
||||
"""
|
||||
根据代码导出 NyaHome 的 openapi.json 。
|
||||
"""
|
||||
from nyahome.server import save_openapi_json
|
||||
|
||||
save_openapi_json(path)
|
||||
console.print(f"[cyan]已经保存 openapi.json 到 {path} 。[/cyan]")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
app()
|
||||
|
||||
Reference in New Issue
Block a user