[英]Get origin URL in FastAPI
是否可以獲得來自 FastAPI 的請求的 URL?
例如,如果我有一個在api.mysite.com/endpoint
請求的端點,並且從www.othersite.com
向該端點發出請求,有沒有辦法可以檢索字符串“www.othersite.com " 在我的端點 function 中?
問題的前提,可以表述為
服務器可以識別請求來自的 URL
被誤導了。 確實,一些 HTTP 請求(尤其是瀏覽器發出的一些請求)帶有Origin
header和/或Referer
[sic] header 。 此外, Forwarded
的 header (如果存在)包含有關發出請求的位置的信息。 但是,HTTP 規范中的任何內容都沒有要求請求通常宣傳它們的來源。
因此,無論是使用 FastAPI 還是其他一些服務器技術,都無法確定請求來自何處。
根據FastAPI 文檔,因此Starlette 的:
假設您想在路徑操作 function 中獲取客戶端的 IP 地址/主機。
@app.get("/items/{item_id}")
def read_root(item_id: str, request: Request):
client_host = request.client.host
return {"client_host": client_host, "item_id": item_id}
請注意,正如其他人所指出的,如果您使用 nginx,則需要向 nginx 請求添加標頭以處理該數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.