Azure rest api - APIM 策略 XML 错误
Azure rest api - APIM policy XML errors
我们 运行 遇到了 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 格式上,但我们尝试以各种方式对其进行编码,但没有帮助。
试试这个:
policy=`cat <path of file>/test.xml`
jq -Rs --arg contentFormat "rawxml" '{properties: {format: $contentFormat, value: . }}' <<<$policy
结果:
为了进行快速测试,请使用此请求正文直接在邮递员中更新策略:
在我设法解决这个问题的同时,XML 的特殊字符必须被替换(";&;<;>)。
以前我们为整个文档而不只是在值中这样做。
我们 运行 遇到了 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 格式上,但我们尝试以各种方式对其进行编码,但没有帮助。
试试这个:
policy=`cat <path of file>/test.xml`
jq -Rs --arg contentFormat "rawxml" '{properties: {format: $contentFormat, value: . }}' <<<$policy
结果:
为了进行快速测试,请使用此请求正文直接在邮递员中更新策略:
在我设法解决这个问题的同时,XML 的特殊字符必须被替换(";&;<;>)。 以前我们为整个文档而不只是在值中这样做。