配置 API 緩衝資訊,緩衝 API 的響應,減輕業務系統壓力。
關於此任務
API 緩衝包含整個後端請求的響應,包括回應標頭和響應體,所以要求被緩衝的 API 的回應標頭中排除狀態類資訊,比如 cookie 中的使用者態資料。該緩衝功能只適合緩衝無狀態資料。
後端業務系統可以通過在回應標頭中添加 Pragma: no-cache 告知網關不緩衝該次響應。
操作步驟
登入 mPaaS 控制台,在左側導覽列,點擊 移動網關 菜單。
在 API 列表中,選擇要配置的 API 名稱,點擊操作列中的 配置,進入 API 詳情頁面。
點擊 緩衝配置 地區的 修改 按鈕,配置如下規則:
結果緩衝:是否開啟緩衝。
緩衝時間:緩衝的存活時間,單位:秒。
緩衝索引值:用於緩衝的索引值運算式。點擊 修改 定義緩衝索引值。在彈出的模態框中,填寫緩衝所需的主鍵,可以拖曳進行排序。關於索引值文法的資訊,參見下文的索引值文法。
索引值文法
支援的文法
當 API 請求到達網關後,網關會根據索引值配置擷取相應的資料,作為緩衝的索引值,其文法如下:
文法 | 描述 |
$ | 根對象,例如:$.bar |
[num] | 數組訪問,其中 num 是數字。例如:$[0].bar.foos[1].name |
. | 屬性訪問,例如:$.bar |
[‘key’] | 屬性訪問,例如:$[‘bar’] |
$.header | API 要求標頭對象,用於擷取要求標頭中的欄位,例如:$.header.remote_addr |
$.cookie | API 請求 cookie 對象,用於擷取 cookie 中的值,例如:$.cookie.session_id |
$.http_body | 後端為 HTTP 類型的請求體對象,用於擷取請求體中的欄位,例如:$.http_body.name |
$.http_qs | 後端為 HTTP 類型的請求參數對象,用於擷取請求參數,例如:$.http_qs.name |
程式碼範例
以如下請求資料為例,從請求報文中擷取對象:
URL:/json.htm?tenantId=boo
Header:
Content-Type:application/json
opt:com.mobile.info.get
workspaceId:default
appId:B2D553102
cookie:JSESSIONID=abcd;traceId=trace1000
Body:
[
{
"key": "1234",
"locations": [
"beijing",
"shanghai"
],
"language": "zh-Hans",
"unit": "c"
},
{
"demo": {
"name": "nick"
}
}
]如下顯示錶達式的樣本:
$.header.appId = B2D553102
$.cookie.traceId = trace1000
$.http_qs.tenantId = boo
$[0].key = 1234
$[0].locations[1] = shanghai
$[1].demo.name = nick