更新时间:2020-06-04 14:50
配置 API 缓存信息,缓存 API 的响应,减轻业务系统压力。
API 缓存包含整个后端请求的响应,包括响应头和响应体,所以要求被缓存的 API 的响应头中排除状态类信息,比如 cookie
中的用户态数据。该缓存功能只适合缓存无状态数据。
后端业务系统可以通过在响应头中添加 Pragma: no-cache
告知网关不缓存该次响应。
当 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",
"shagnhai"
],
"language": "zh-Hans",
"unit": "c"
},
{
"demo": {
"name": "nick"
}
}
]
如下显示表达式的示例:
$.header.appId = B2D553102
$.cookie.traceId = trace1000
$.http_qs.tenantId = boo
$[0].key = 1234
$[0].locations[1] = shagnhai
$[1].demo.name = nick
在文档使用中是否遇到以下问题
更多建议
匿名提交