Azure API管理-将请求映射到不同的响应代码

时间:2018-12-02 23:17:53

标签: azure-api-management

我已将外部API添加到API管理中。即使错误请求,API始终返回200响应。响应具有一个名为status的属性,该属性表示响应是否正常或请求是否正确

我可以配置API管理基于此响应中的'status'属性返回响应代码吗?那该怎么办呢?

1 个答案:

答案 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>