我在Azure API Management中创建了一个API,我意识到APIM实际上隐藏了我在响应中返回的一些主体。我得到200,但我没有得到404,401,或500。
我知道最好是控制返回的内容,而且我们不想给最终用户提供带有500错误正文的HTML。
但是,我在API中使用了404或401,并且在响应正文中返回了一些信息。是否有可能控制某些状态代码返回的内容?
发布于 2020-05-24 21:23:10
使用set-body策略设置传入和传出请求的消息体。要访问邮件正文,可以使用context.Request.Body属性或context.Response.Body,具体取决于策略是在入站部分还是出站部分。
您可以使用以下代码自定义响应正文:
<when condition="@(context.Response.StatusCode == 404)">
<return-response>
<set-status code="404" reason="NotFound">
<set-header name="Content-Type">
<value>application/json</value>
</set-header>
<set-body>@{
var response = context.Response.Body.As<JObject>();
foreach (var key in new [] {"HTTP Error 404. The requested resource is not found."}) {
response.Property (key).Remove ();
}
return response.ToString();
}</set-body>
</return-response>
</when>https://stackoverflow.com/questions/61949996
复制相似问题