我已将外部API添加到API管理中。即使错误请求,API始终返回200响应。响应具有一个名为status的属性,该属性表示响应是否正常或请求是否正确
我可以配置API管理基于此响应中的'status'属性返回响应代码吗?那该怎么办呢?
答案 0 :(得分:2)
您可以将 set-status 策略(用于设置HTTP状态代码)与 choose 策略(用于检查属性值)一起使用。检查set-status documentation了解更多信息。
Microsoft文档中的以下示例显示了如果授权令牌无效,如何返回401响应。
<choose>
<when condition="@((bool)((IResponse)context.Variables["tokenstate"]).Body.As<JObject>()["active"] == false)">
<return-response response-variable-name="existing response variable">
<set-status code="401" reason="Unauthorized" />
<set-header name="WWW-Authenticate" exists-action="override">
<value>Bearer error="invalid_token"</value>
</set-header>
</return-response>
</when>
</choose>