azure-api-management - Azure API 管理 - 将请求映射到不同的响应代码
问题描述
我在 API 管理中添加了一个外部 API。即使是错误的请求,API 也总是返回 200 响应。响应有一个名为 status 的属性,表示响应是否正常或是否是错误请求
我可以将 API 管理配置为根据此响应中的“状态”属性返回响应代码吗?那我该怎么做?
解决方案
您可以使用set-status策略(设置 HTTP 状态代码)和选择策略(检查您的属性值)。查看设置状态文档以获取详细信息。
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>
推荐阅读
- reactjs - 在使用 three.js 渲染 3D 模型时,使用 Next.Js 与普通 React 相比有什么优势吗?
- terraform - 通过 ssh 密钥远程使用 Terraform 模块的 Teamcity 代理
- c++ - 如何在单独的 config.h 文件中声明全局变量
- windows - 获取挂起脚本的行号
- reactjs - useEffect exhaustive-deps 警告:这试图避免哪些可能的问题?
- angular - 错误:projects/custom-lib/src/lib/components/accordion/accordion.component.html:1:1 - 错误 NG8001:'ngb-accordion' 不是已知元素
- jaxb - JAXB 阻塞 UTF-16 XML
- apache-kafka - KTable 没有对具有相同键的传入记录进行重复数据删除
- javascript - 转换以将 API 数据发送到要在折线图中使用的其他组件
- ios - IOS UITableView display first 5 rows of an array