Azure API 管理/门户 : activate Mocking for "Try Out" in API Portal

标签 azure api policy portal

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

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

示例

API 是在 Azure API 管理上创建的并且富有成效。 此 API 列在相应的 Azure API 门户中 - 开发人员现在找到了该 API 并想要尝试一下: enter image description here

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

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

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

编辑:一般的“启用模拟”当然对于高效的 API 来说是没有选项的。

感谢您的帮助!

最佳答案

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

仅当调用用户是“开发人员内部”组的成员(都是通过 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>

关于Azure API 管理/门户 : activate Mocking for "Try Out" in API Portal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63397159/

相关文章:

sql - 当我从 Azure 流作业插入数据时,如何在 CosmosDB 中使用 GUID 作为 ID

azure - 是否可以将网站移至其他 "Web Hosting Plan"

javascript - 从 Azure 中的另一个 API 调用 API

Ruby 脚本,存储 API 登录信息的最佳方法?

amazon-ec2 - 使用 AWS 空条件来防止空标签或丢失标签?

当时间租赁时间超过 1 分钟时,Azure Blob 存储获取租赁会引发错误

azure - 如何将数据从 UDF 发送到 Azure Digital Twin 中的 Cosmos DB?

javascript - 从缓冲区播放声音

text-editor - 在当今时代,是否有合理的理由强制代码文件的最大宽度为 80 个字符?

facebook - Facebook 应用程序中的附属链接 - 违 react 用程序政策?