[英]Azure API Management response cache based on path parameter
當整個響應基於一個路徑參數在內部緩存在 APIM 中時,我需要實現業務邏輯。 例如 URI 是:
https://<apimhostname>/mycustomapi/v1/domains/<domain_id>/services
基於domain_id
路徑參數,在 GET 操作期間,我需要緩存特定domain_id
的整個響應,然后在具有給定域 id 的后續請求中將其返回給客戶端。 可能的 domain_id 值的數量少於 10。
我看到vary-by-query-parameter
策略,它緩存每個指定查詢參數值的整個響應。 但是,實際上,我沒有查詢參數。 另一方面, cache-store-value
策略允許通過鍵存儲值。 在我的例子中,關鍵是domain_id
但我不確定是否可以用這種方式存儲整個響應。
在這種情況下,哪種方法更適合根據路徑參數緩存整個響應?
此外,我有一個Authorization
header,其訪問令牌在 APIM 端( validate-jwt
策略)經過驗證( iss
和aud
),但是,我的后端驗證了“角色”聲明。 因此,當我回復來自緩存的響應時,是否有任何方法可以驗證 APIM 端的角色聲明?
謝謝。
緩存存儲策略 ( https://learn.microsoft.com/en-us/azure/api-management/api-management-caching-policies#StoreToCache ) 將執行您需要執行的操作:
<policies>
<inbound>
<base />
<cache-lookup vary-by-developer="true" vary-by-developer-groups="false"/>
</inbound>
<outbound>
<base />
<cache-store duration="3600" />
</outbound>
</policies>
如果請求 URL 由相同的 APIM 操作處理,則上述策略會將請求考慮在內。 即請求https://<apimhostname>/mycustomapi/v1/domains/1/services
和https://<apimhostname>/mycustomapi/v1/domains/2/services
將被單獨緩存。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.