如何在 Azure API REST 上处理每个客户的自定义

How to handle per-customer customizations on Azure API REST

我们在应用服务上托管了 REST API。 API 是无状态的,每个方法都会收到一个 API 密钥,并且取决于我们连接到一个或另一个数据源(API 对每个客户都是通用的,但他们有自己的数据库) . API 和数据结构对所有客户都是通用的。

现在我们有一些独特的、针对每个客户的请求,涉及自定义字段或仅存在于某些客户数据库中的功能,这些应该只适用于某些客户。

问题:处理这种情况的最佳方法是什么?

我完全没抓住要点吗?

提前致谢。

您需要在 APIM 中创建 产品

首先,如果您只有一个 API,请将您的 API 分解为最小的一组 API,其中两个 API 之间没有冗余.您将把这些 API 集映射到产品。

接下来为每个客户创建一个 APIM 产品(或者为每组一个或多个将使用同一组 API 的客户创建一个产品)。创建产品后,仅映射与该产品中的那些客户相关的 API。 创建产品后,转到订阅选项卡并为您的产品范围创建新的订阅密钥。您的客户现在可以使用产品订阅密钥对他们的产品进行身份验证,并且该产品中不可用的其他 API 对他们来说将不可见或不可访问。

有关设置 APIM 产品的详细信息,请参阅:https://docs.microsoft.com/en-us/azure/api-management/api-management-howto-add-products?tabs=azure-portal

因为一个 API 可以用在一个或多个产品中,一个产品可以由一个或多个 API 组成,而客户端只有 API 可以访问在他们拥有关键的产品中,您可以轻松管理您的 API,而不会出现冗余或复杂性。