我们是否应该在 Azure API 管理中为每个应用程序设置多个 API 端点以调用单个 API 应用程序?

Should we have multiple API endpoints per application in Azure API Management to call through to a single API application?

我有一个 API 位于 Azure API 管理 (APIM) 后面。此外,我有一些独立的应用程序需要通过 APIM 使用此 API(比方说,应用程序 A 和应用程序 B - 两者都是函数应用程序)。我的问题是,我是否在 APIM 中为每个功能应用创建两组单独的 API 以使用单个 API?或者我应该通过相同的 APIM API 发送它们吗?什么是最佳实践?我已经搜索过 Microsoft,但还没有找到任何明确的信息。

此外,如果它们是两个使用 API 的 SPA,会有什么不同吗? (假设一个消费者水疗应用和一个管理水疗应用)

一般方法是围绕 APIM 中的 API 来构建它们的消费方式。在 APIM 中将单个 API 表面拆分为单独的 products/APIs/operations 允许您指定不同的策略、访问要求,并在日志和分析中单独查看这些调用 e.t.c。因此,如果在您的场景中您不需要区分您的两个应用程序,则无需拆分任何内容。

但是假设您希望一个应用程序使用证书身份验证而另一个应用程序依赖订阅密钥 - 在 APIm 中有两个产品是一个很好的例子。

同样,假设一个应用程序只需要一组操作而另一个应用程序需要一组不同的操作 - 这是拆分成多个 APIs 的有力案例。

如果所有其他方法都失败了,将 API 拆分为逻辑块仍然有意义。根据您的学科领域,您可能拥有:

  • 订单API
  • 用户API
  • 产品API e.t.c