Azure API 管理 - 动态模拟响应

Chr*_*ond 3 azure-api-management

我正在设置一套企业 API,但我希望能够为消费者提供一些“存根”端点,以允许他们在不需要我的情况下继续其开发过程。

因此,当我们使用 Azure API Manager 时,我将使用 MOCK 响应请求。

现在,我知道任何响应都将是严格定义的数据契约/模式,但我想要做的是根据入站请求提供不同的响应有效负载内容。

设置模拟响应时,这是根据 HTTP 状态代码完成的,并且似乎您只能为每种状态设置一个模拟响应,因此您有一个用于 200 OK、202 Accepted 和另一个用于 500 Server Failure 和很快。

有没有办法说,例如 200 响应,可以选择根据请求回复不同的内容?

例如

正如所说,“一些选项的有效负载?” 将符合商定的 API 合同,但选项 A 的数组中可能只有 1 个元素,但选项 B 可能有 5 个元素。

/api/request?option=A => 200 OK {选项 A 的一些有效负载}

/api/request?option=B => 200 OK {选项 B 的一些负载}

Jus*_*hew 5

您可以在出站策略中使用 APIM 的转换策略,根据您的 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>
Run Code Online (Sandbox Code Playgroud)

PS:未测试