【问题标题】:Should we have multiple API endpoints per application in Azure API Management to call through to a single API application?我们是否应该在 Azure API 管理中为每个应用程序设置多个 API 端点来调用单个 API 应用程序?
【发布时间】:2021-10-05 12:41:33
【问题描述】:
我有一个位于 Azure API 管理 (APIM) 后面的 API。此外,我有一些独立的应用程序需要通过 APIM 使用这个 API(比如说,应用程序 A 和应用程序 B——它们都是函数应用程序)。我的问题是,我是否在 APIM 中为每个函数应用创建两组单独的 API 以使用单个 API?还是应该通过相同的 APIM API 发送它们?什么是最佳实践?我已经搜索了 Microsoft,但还没有明确找到任何东西。
此外,如果它们是两个使用 API 的 SPA 会有所不同吗? (假设一个消费者水疗应用和一个管理水疗应用)
【问题讨论】:
标签:
c#
.net
azure
azure-api-management
apim
【解决方案1】:
一般方法是围绕 APIM 中的 API 使用方式来构建 API。在 APIM 中将单个 API 表面拆分为单独的产品/API/操作允许您指定不同的策略、访问要求,在日志和分析等中分别查看这些调用。因此,如果在您的场景中您不需要区分两个应用程序,则无需拆分任何内容。
但是假设您希望一个应用使用证书身份验证,而另一个应用依赖订阅密钥 - 这将是在 APIm 中拥有两个产品的好案例。
同样,假设一个应用只需要一组操作,而另一个应用需要不同的操作 - 这是拆分为多个 API 的有力案例。
如果所有其他方法都失败了,将 API 拆分为逻辑块仍然有意义。根据您的学科领域,您可能有: