首页 > 解决方案 > 是否可以将路径传递到 fastapi 端点?

问题描述

我正在尝试使用 fastapi 创建一个遍历 api 的文件夹。假设我有这样的终点:

@root_router.get("/path/{path}")
def take_path(path):
    logger.info("test %s", path)
    return path

如果我对浏览器进行操作并调用“URL:PORT/path/path”

它返回“路径”,很简单。但是,如果我尝试“URL:PORT/path/path/path”,代码甚至不会到达记录器。我想这是有道理的,因为 API 不存在那个端点。但它确实存在于我的服务器上。我已经想出了其他方法来做到这一点,即将路径作为参数数组传递并使用 / 分隔符在代码中重新构建,但是如果我可以通过 url 中的路径移动,则在 url 中传递参数感觉有点笨拙我的服务器,那将是理想的。这是可行的吗?

谢谢。

标签: pythonpython-3.xfastapi

解决方案


添加:path到您的参数:

@root_router.get("/path/{path:path}")
async def take_path(path: str):
    logger.info("test %s", path)
    return path

请注意,这是一个 Starlette 功能。


推荐阅读