Нужно получать данные запроса напрямую, из них можно вытащить URL и имя хоста:
import uvicorn
from fastapi import FastAPI, Request
app = FastAPI()
@app.get("/")
def read_root(request: Request):
return request.url.hostname
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=5000)
При переходе на http://0.0.0.0:5000
вернет "0.0.0.0"
. Если у вас URL фактически будет cafe1.menu.com/...
, то и имя хоста будет "cafe1.menu.com"
.
Соответственно, вам нужно будет из имени хоста вытащить первую часть (хоть через split
или partition
, хоть через регулярное выражение), и передать ее в функцию.