在我的Azure API管理中,我在API级别定义了基于标头的缓存策略。该政策非常简单:
<policies>
<inbound>
<check-header name="token" failed-check-httpcode="400" failed-check-error-message="Token header is missing" ignore-case="true" />
<cache-lookup vary-by-developer="false" vary-by-developer-groups="false" downstream-caching-type="none">
<vary-by-header>token</vary-by-header>
</cache-lookup>
<base />
</inbound>
<backend>
<forward-request />
</backend>
<outbound>
<cache-store duration="3600" />
<base />
</outbound>
<on-error>
<base />
</on-error>
</policies>
[在我的下游返回带有正文的200的情况下可以正常工作-具有相同标头令牌的下一个请求将到达缓存,并且响应将从API管理缓存中返回。
但是下游会返回错误代码(例如:401未经授权),表明API管理未缓存响应(由我在API管理上启用的跟踪确认)。我给人的印象是整个响应都被缓存了,但是事实并非如此……
有人可以让我知道在http代码不成功的情况下是否也可以缓存响应,如果可以,请指向我一些文档-我昨天整天一直在搜索,但是找不到更多信息。
提前感谢!