如果請求包含Accept = application/xml,我試圖將json響應轉換爲xml。否則,應該返回json響應。Azure API管理:考慮接受頭的json-to-xml策略
這裏是我的政策:
<policies>
<inbound><base /></inbound>
<backend><base /></backend>
<outbound>
<base />
<json-to-xml apply="content-type-json" consider-accept-header="true" />
</outbound>
<on-error><base /></on-error>
</policies>
當我測試這個沒有接受頭,一切都很好(200 OK和JSON是正常返回)。
但是,添加accept頭,我得到了406不可接受。
可以在https://gist.github.com/jhgbrt/9df92cb0a140804ea01c處獲得跟蹤(在添加標題Ocp-Apim-Trace:true後)。在跟蹤中,您將看到以下內容:
- 'inbound'部分確認請求標頭'Accept'的值爲'application/xml'。
request-executor
塊包含一條消息,說明「請求正被轉發到後端服務」。 - 在'outbound'塊中,您已經看到406不可接受,並刪除了Accept頭,之後json-to-xml塊因此失敗。
我錯過了什麼?