如何在 Azure API 管理中的 set-body 中抛出异常?
How can I throw exceptions in set-body in Azure API Management?
我正在处理的 API 现在在请求正文中没有某些 属性 时抛出 500 内部服务器错误。我想消除它,取而代之的是,它 return 是另一个状态代码,例如 400 Bad Request。我从 Azure 的 APIM 中得知错误是 return,自从我在此处反序列化请求正文后,如何将错误抛出到 set-body 策略中?
我已经阅读了很多帖子和文档,但没有成功。这是我的代码:
<inbound>
<send-request mode="new" response-variable-name="" timeout="60 sec">
<set-method>POST</set-method>
<set-header name="Content-Type" exists-action="override">
<value>application/json</value>
</set-header>
<set-body>@{
var request = context.Request.Body.As<JObject>(preserveContent: true);
if(String.IsNullOrEmpty((string)request["id"])){
WHAT SHOULD I PUT HERE?
}
return request.ToString();
}</set-body>
</send-request>
</inbound>
如果有人能提供帮助,我们将不胜感激。
您可以在 Azure API 管理中使用 return 响应策略
https://docs.microsoft.com/en-us/azure/api-management/api-management-advanced-policies#ReturnResponse
我正在处理的 API 现在在请求正文中没有某些 属性 时抛出 500 内部服务器错误。我想消除它,取而代之的是,它 return 是另一个状态代码,例如 400 Bad Request。我从 Azure 的 APIM 中得知错误是 return,自从我在此处反序列化请求正文后,如何将错误抛出到 set-body 策略中?
我已经阅读了很多帖子和文档,但没有成功。这是我的代码:
<inbound>
<send-request mode="new" response-variable-name="" timeout="60 sec">
<set-method>POST</set-method>
<set-header name="Content-Type" exists-action="override">
<value>application/json</value>
</set-header>
<set-body>@{
var request = context.Request.Body.As<JObject>(preserveContent: true);
if(String.IsNullOrEmpty((string)request["id"])){
WHAT SHOULD I PUT HERE?
}
return request.ToString();
}</set-body>
</send-request>
</inbound>
如果有人能提供帮助,我们将不胜感激。
您可以在 Azure API 管理中使用 return 响应策略 https://docs.microsoft.com/en-us/azure/api-management/api-management-advanced-policies#ReturnResponse