簡體   English   中英

Azure API 基於路徑參數的管理響應緩存

[英]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策略)經過驗證( issaud ),但是,我的后端驗證了“角色”聲明。 因此,當我回復來自緩存的響應時,是否有任何方法可以驗證 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/serviceshttps://<apimhostname>/mycustomapi/v1/domains/2/services將被單獨緩存。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM