python - FastAPI 多个路由绑定(bind)到同一个函数。如何知道请求了哪一个

假设我有 2 条路由指向同一个函数

from fastapi import FastApi

app = FastApi()

@app.get('/api/')
@app.get('/api/test')
def main_route():
    ...

两条路由都会调用main_route函数,但我想知道使用了哪条路由。不应在其中使用查询参数。我正在考虑使用 request 对象,但我想知道是否有更简单的解决方案。

最佳答案

这里一定要用Request对象。您可以按原样运行以下代码。

from fastapi import FastAPI, Request

app = FastAPI()

@app.get('/api')
@app.get('/api/test')
def main_route(request: Request):
    return {"Called from": request.url.path}

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="0.0.0.0", port=8000)

https://stackoverflow.com/questions/73023341/

相关文章:

string - 如何将字符串中的 "Umlaute"(ü)转为 "ue"?

excel - 按分隔符幂查询的 X 实例拆分行

typescript - 属性 'type' 在类型 'object' 上不存在,即使在 `"typ

c - scanf() 不写入二维字符数组

java - 使用流 groupingBy 时将字符串分组为多个组

bash - 修剪文件名以仅保留最后 5 个字符

sql - 如何在 Snowflake 的枢轴中使用 LISTAGG?

dart - Dart apt repo 的 NO_PUBKEY "4EB27DB2A3B88B8B

perl - 我怎样才能通过 prove (Test::More) 一个论点,例如API 网址?

kotlin - 如何缩短 MaterialTheme.colors.primary?