Azure rest api - APIM 策略 XML 错误

时间:2021-04-23 11:29:20

标签: xml azure jq azure-api-management azure-rest-api

我们遇到了 API 管理问题,我们的客户希望我们自动将 API 级别策略添加到我们在那里配置的 API。
我们正在尝试使用 bash 脚本来解决这个问题(我们不能使用 powershell 或任何其他工具),但我们遇到了一个问题:API 需要 Content-Type: application/json,但其中一个值应该是XML string

我尝试了多种方法来为此创建请求正文,但在响应中出现错误,例如:"message":"An error occurred while parsing EntityName. Line 6, position 74."

"Data at the root level is invalid. Line 1, position 1."

有谁知道我们应该如何形成我们的请求正文?
我们用 jq 来做这个,就像这样:

jq -Rs \
   --arg contentFormat "xml" \
   '{properties: {format: $contentFormat, value: . }}' <${policy}

其中 policy 是从 GUI 手动生成的策略复制的 xml 文档的路径。

感谢任何帮助!

我怀疑问题出在 XML 格式上,但我们尝试以各种方式对其进行编码,但都无济于事。

2 个答案:

答案 0 :(得分:0)

试试这个:

policy=`cat <path of file>/test.xml`
jq -Rs    --arg contentFormat "rawxml"    '{properties: {format: $contentFormat, value: . }}' <<<$policy

结果

enter image description here

为了快速测试,请使用此请求正文直接在邮递员中更新策略: enter image description here

答案 1 :(得分:0)

与此同时,我设法解决了这个问题,必须替换 XML 的特殊字符 (";&;<;>)。 以前,我们对整个文档进行了处理,而不仅仅是在值中。

相关问题