Starlette/FastApi 带有正斜杠的路由路径组件
Starlette/FastApi route path components with forward slash
我在Starlette/FastApi-
中定义了一条路线
@router.post("/{part}")
def post_method(part):
return "ok"
@router.post("/{part}/{another_part}")
def another_post_method(part, another_part):
return "ok"
我在路径组件中有一些正斜杠,我想提出以下访问请求 post_method
curl -X POST "http://127.0.0.1:5000/api/path%2Fpath" -H "accept: application/json" -d ""
导致 Starlette/Fastapi 日志中出现 404 错误。
INFO: 127.0.0.1:50233 - "POST /api/path/path HTTP/1.1" 404
如何获取正确的路径组件?
您可以使用 Starlette 内置的路径转换器
@app.route("/path/{param:path}", name="path-convertor")
Marcelo Trylesinski (Kludex) 在 fastapi 中的回应 gitter:
- 不允许
- 临时解决方案:不使用路径
我在Starlette/FastApi-
中定义了一条路线@router.post("/{part}")
def post_method(part):
return "ok"
@router.post("/{part}/{another_part}")
def another_post_method(part, another_part):
return "ok"
我在路径组件中有一些正斜杠,我想提出以下访问请求 post_method
curl -X POST "http://127.0.0.1:5000/api/path%2Fpath" -H "accept: application/json" -d ""
导致 Starlette/Fastapi 日志中出现 404 错误。
INFO: 127.0.0.1:50233 - "POST /api/path/path HTTP/1.1" 404
如何获取正确的路径组件?
您可以使用 Starlette 内置的路径转换器
@app.route("/path/{param:path}", name="path-convertor")
Marcelo Trylesinski (Kludex) 在 fastapi 中的回应 gitter:
- 不允许
- 临时解决方案:不使用路径