![](/img/trans.png)
[英]Where do I start with Django when I have a development server running and have a GET request from API?
[英]When using Amazon API Gateway, how do I get the API key used in the request from a Django backend?
相當不言自明的標題。 我在 AWS 中使用 API Gateway,需要一個 API 密鑰來訪問用 Django 編寫的后端(不使用 lambda)。 我需要知道如何訪問請求中使用的 API 密鑰以跟蹤誰在應用程序級別做了什么。
您可以使用映射模板並從 $context 變量中獲取 API 密鑰,它是身份對象內的 apiKey 屬性: http ://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template -reference.html#context-variable-reference
為您的請求創建一個映射模板並在其中包含該屬性。 例如,如果您想包含整個請求正文 + API 密鑰,您可以這樣做:
{
"body": $input.json('$'),
"apiKey": "$context.identity.apiKey"
}
根據您的后端應用程序的構建方式,您可以在 HTTP 參數(路徑、查詢字符串或標頭)或請求正文中將 API 密鑰發送到您的應用程序。 請通讀有關如何在兩個系統之間移動數據的文檔。
謝謝,瑞安
這是我最終使它工作的方式。 在模板的頂部或底部,包含此行。
#set($context.requestOverride.header.x-api-key = $context.identity.apiKey)
當您的后端收到此請求時,api 密鑰將位於標頭x-api-key
。
這是一個基本的映射模板,它只轉發 (json) 正文和標題。
$input.json("$")
#set($context.requestOverride.header.x-api-key = $context.identity.apiKey)
API Gateway 使用 X-API-Key 標頭,所以我希望我的后端也使用它。 這樣我就可以使用相同的測試命令,只是 URL 不同。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.