Azure API Management/Portal:在 API 门户中为 "Try Out" 激活模拟
Azure API Management/Portal: activate Mocking for "Try Out" in API Portal
我想知道是否有可能从 API 门户激活对基于 API 的 Azure API 管理的调用的模拟。
我不希望浏览界面目录并使用“试用”功能的开发人员实际 CRUD 记录 from/in 后端。他们应该只接收一组预定义的数据,这样他们就可以根据它进行开发,而不会弄乱后端的数据。
例子
API 在 Azure 上创建 API 管理和生产。
此 API 列在相应的 Azure API 门户中 -
开发人员现在发现 API 并想尝试一下:
POST /SalesQuote 将在 SAP 中创建销售报价单。开发人员使用开发人员门户中的“试用”按钮来查看行为。 “发送”按钮现在实际上在后端创建了一条记录。
这可以预防吗?如果是这样 - 怎么样?这是否可以在 API 政策中实现(即起源的模拟数据 = api 门户 url)?
我能想到的唯一其他选择是禁用试一试功能——这是一个糟糕的解决方案。
编辑:一般的“启用模拟”当然是为了提高效率 API 别无选择。
感谢您的帮助!
是的,你可以,你必须在 API 的出站中添加一个策略,通常我用它来公开开发过程中的 api。
转到此 link 的“启用响应模拟”部分:
https://docs.microsoft.com/en-us/azure/api-management/mock-api-responses
感谢 Nacho,我更深入地研究了策略功能并进行了一些尝试。我想出了以下内容:
<inbound>
<base />
<choose>
<when condition="@(context.User.Groups.Any(Group => Group.Name == "developer-internal"))">
<mock-response status-code="201" content-type="application/json" />
</when>
</choose>
</inbound>
仅当调用用户是组“developer-internal”(通过 AAD 映射都是开发人员门户用户)的成员时,才应启用模拟。
作为替代方案,我正在验证我们测试后端的 re-routing 选项,而不是模拟如下所示的响应:
<inbound>
<base />
<choose>
<when condition="@(context.User.Groups.Any(Group => Group.Name == "developer-internal"))">
<!--mock-response status-code="201" content-type="application/json" /-->
<set-backend-service base-url="https://esb-test.example.com/restv2/CostObject" />
</when>
</choose>
</inbound>
我想知道是否有可能从 API 门户激活对基于 API 的 Azure API 管理的调用的模拟。
我不希望浏览界面目录并使用“试用”功能的开发人员实际 CRUD 记录 from/in 后端。他们应该只接收一组预定义的数据,这样他们就可以根据它进行开发,而不会弄乱后端的数据。
例子
API 在 Azure 上创建 API 管理和生产。
此 API 列在相应的 Azure API 门户中 -
开发人员现在发现 API 并想尝试一下:
POST /SalesQuote 将在 SAP 中创建销售报价单。开发人员使用开发人员门户中的“试用”按钮来查看行为。 “发送”按钮现在实际上在后端创建了一条记录。
这可以预防吗?如果是这样 - 怎么样?这是否可以在 API 政策中实现(即起源的模拟数据 = api 门户 url)?
我能想到的唯一其他选择是禁用试一试功能——这是一个糟糕的解决方案。
编辑:一般的“启用模拟”当然是为了提高效率 API 别无选择。
感谢您的帮助!
是的,你可以,你必须在 API 的出站中添加一个策略,通常我用它来公开开发过程中的 api。
转到此 link 的“启用响应模拟”部分: https://docs.microsoft.com/en-us/azure/api-management/mock-api-responses
感谢 Nacho,我更深入地研究了策略功能并进行了一些尝试。我想出了以下内容:
<inbound>
<base />
<choose>
<when condition="@(context.User.Groups.Any(Group => Group.Name == "developer-internal"))">
<mock-response status-code="201" content-type="application/json" />
</when>
</choose>
</inbound>
仅当调用用户是组“developer-internal”(通过 AAD 映射都是开发人员门户用户)的成员时,才应启用模拟。
作为替代方案,我正在验证我们测试后端的 re-routing 选项,而不是模拟如下所示的响应:
<inbound>
<base />
<choose>
<when condition="@(context.User.Groups.Any(Group => Group.Name == "developer-internal"))">
<!--mock-response status-code="201" content-type="application/json" /-->
<set-backend-service base-url="https://esb-test.example.com/restv2/CostObject" />
</when>
</choose>
</inbound>