我正在尝试使用 Azure APIM 策略修改响应,如下所示:
<set-body>@{
JObject response = context.Response.Body.As<JObject>(preserveContent: true);
return response.ToString();
}</set-body>
如果我使用它作为响应,我的 json 就可以了。但是,我尝试使用液体模板嵌套结果主体,如下所示
<set-body template="liquid">{"result" : { {{body}} }, "targetUrl": "null", "success": "true"}
</set-body>
但是,正文不会以格式化的 json 形式出现,并且响应的第一级缺少逗号。
EG 结果为:
“代码”:“1234”“制造商”:“测试”“计数”:1
应该是
“代码”:“1234”,“制造商”:“测试”,“计数”:1
我不想变换主体,只是将其嵌套在结果中。最好的方法是什么?
蒂亚
我认为最好的方法不是使用液体模板,而是对 json 进行 stringfy 并附加结果,如下所示:
<set-body>@(
"{\r\n \"result\": " + context.Response.Body.As<string>(preserveContent: true) + ",\r\n \"targetUrl\": \"null\",\r\n \"success\": \"true\",\r\n \"error\": \"null\",\r\n \"unAuthorizedRequest\": \"false\",\r\n \"__abp\": \"true\"\r\n}"
)</set-body>