【问题标题】:Azure API Management/Portal: activate Mocking for "Try Out" in API PortalAzure API 管理/门户:在 API 门户中为“试用”激活模拟
【发布时间】:2020-12-03 10:05:19
【问题描述】:

我想知道是否有可能为从 API 门户调用基于 Azure API 管理的 API 激活模拟。

我不希望开发人员浏览界面目录并使用“试用”功能来实际从后端/在后端进行 CRUD 记录。他们应该只接收一组预定义的数据,这样他们就可以针对它进行开发,而不会弄乱后端的数据。

示例

API 是在 Azure API 管理上创建的,并且具有生产力。 此 API 在相应的 Azure API 门户中列出 - 开发人员现在找到了该 API 并想尝试一下:

POST /SalesQuote 将在 SAP 中创建销售报价单。开发人员使用开发人员门户中的“试用”按钮来查看行为。 “发送”按钮现在实际上在后端创建了一条记录。

这可以预防吗?如果是这样 - 如何?这是否可以在 API 策略中实现(即,用于 origin = api 门户 url 的模拟数据)?

我能想到的唯一其他选择是禁用 try it 功能 - 这是一个糟糕的解决方案。

编辑:一般的“启用模拟”当然是用于生产 API 的,没有选项。

感谢您的帮助!

【问题讨论】:

    标签: azure api policy portal


    【解决方案1】:

    是的,你可以,你必须在 API 的出站添加一个策略,通常我用它来暴露正在开发过程中的 API。

    转到此链接的“启用响应模拟”部分: https://docs.microsoft.com/en-us/azure/api-management/mock-api-responses

    【讨论】:

    • 我知道这个功能 - 正如我的帖子中提到的,它不能为生产性 API 启用一般模拟(因为根本不会通过任何调用)。只有来自 API 门户中“试用”功能的调用需要由模拟服务处理。
    • 哦!我误读了这个问题。我搜索了一下,似乎没有类似的东西。我们通常有两个已发布的环境,一个用于测试,一个用于生产。也许这也适合您!
    • 我们也有,但生产环境反映了 API 的“完美状态”。在开发过程中,开发人员当然会调用开发/测试 API 管理端点。但我想我找到了解决方案,我会在一分钟内回答:)
    【解决方案2】:

    感谢 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 映射的开发者门户用户)的成员时,这才应该启用模拟。

    作为替代方案,我正在验证我们测试后端的重新路由选项,而不是模拟如下所示的响应:

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

    【讨论】:

      猜你喜欢
      • 2019-03-23
      • 1970-01-01
      • 1970-01-01
      • 2022-11-22
      • 1970-01-01
      • 2019-10-29
      • 1970-01-01
      • 2022-08-20
      相关资源
      最近更新 更多