Azure API 管理 - 动态模拟响应
Azure API Management - Dynamic Mock Response
我正在设置一套企业 API,但我希望能够为消费者提供一些“存根”端点,以允许他们在不需要我的情况下继续他们的开发过程。
因此,当我们使用 Azure API 管理器时,我将使用 MOCK 响应请求。
现在,我知道任何响应都将是严格定义的数据协定/模式,但我希望能够根据入站请求提供不同的响应负载内容。
设置模拟响应时,这是根据 HTTP 状态代码完成的,您似乎只能为每个状态设置一个模拟响应,因此您有一个用于 200 OK、202 Accepted 和另一个对于 500 Server Fault 等等。
有没有办法说,比如 200 响应,可以选择根据请求回复不同的内容?
例如
如前所述,“选择一些有效载荷?”将符合商定的 API 合同,但选项 A 在数组中可能只有 1 个元素,但选项 B 可能有 5 个元素。
/api/request?option=A => 200 OK {选项 A 的一些负载}
/api/request?option=B => 200 OK {选项 B 的一些负载}
您可以在出站策略中使用 APIM 的 transformation 策略,根据您的 URL 参数设置自定义正文。
<when condition="@(context.Request.MatchedParameters["option"] =='A')">
<set-body>Some body for A</set-body>
</when>
<when condition="@(context.Request.MatchedParameters["option"] =='B')">
<set-body>Some body for B</set-body>
</when>
PS: 未测试
我正在设置一套企业 API,但我希望能够为消费者提供一些“存根”端点,以允许他们在不需要我的情况下继续他们的开发过程。
因此,当我们使用 Azure API 管理器时,我将使用 MOCK 响应请求。
现在,我知道任何响应都将是严格定义的数据协定/模式,但我希望能够根据入站请求提供不同的响应负载内容。
设置模拟响应时,这是根据 HTTP 状态代码完成的,您似乎只能为每个状态设置一个模拟响应,因此您有一个用于 200 OK、202 Accepted 和另一个对于 500 Server Fault 等等。
有没有办法说,比如 200 响应,可以选择根据请求回复不同的内容?
例如
如前所述,“选择一些有效载荷?”将符合商定的 API 合同,但选项 A 在数组中可能只有 1 个元素,但选项 B 可能有 5 个元素。
/api/request?option=A => 200 OK {选项 A 的一些负载}
/api/request?option=B => 200 OK {选项 B 的一些负载}
您可以在出站策略中使用 APIM 的 transformation 策略,根据您的 URL 参数设置自定义正文。
<when condition="@(context.Request.MatchedParameters["option"] =='A')">
<set-body>Some body for A</set-body>
</when>
<when condition="@(context.Request.MatchedParameters["option"] =='B')">
<set-body>Some body for B</set-body>
</when>
PS: 未测试