使用 Azure API 管理编写 API 的好处

已完成

微服务体系结构可能很难管理。 例如,你可能依赖单独的团队来以一致的方式实现交叉要求(如安全性)。

在网店中,你的开发人员团队在不同的主机 URL 上构建了产品详情和订单详情微服务。 此外,订单详细信息服务使用 XML 响应。 你需要确保所有响应都采用 JSON 格式,以使客户端应用开发人员更容易操作。

在本单元中,你将了解 API Management 的功能。 你可以使用这些功能来集成不同的微服务,并将它们呈现给客户端应用程序,在单个 URL 上保持一致的行为。

微服务体系结构挑战

体系结构的微服务方法创建了一个模块化应用程序,其中每个部分都与其他部分松耦合。 独立部署服务可减少任何可能通过测试进入生产环境的 bug 的影响。 通过这种模块化方法,可更轻松地回滚到稳定版本。 此外,你还可以为每个微服务创建一组小型的自主开发人员团队。 这种划分非常适合新式敏捷做法。

但是,微服务体系结构也可能存在一些挑战,例如:

  • 客户端应用与微服务耦合。 如果要更改微服务的位置或定义,可能需要重新配置或更新客户端应用。
  • 每个微服务可以不同的域名或 IP 地址呈现。 此呈现可能会给用户带来不一致的印象,并可能对你的品牌产生负面影响。
  • 在所有微服务中强制实施一致的 API 规则和标准可能会很困难。 例如,一个团队可能更愿意使用 XML 进行响应,另一个团队可能更倾向于 JSON。
  • 你需要依赖各个团队正确地在其微服务中实现安全性。 但很难集中满足这些要求。

API 管理有何帮助?

通过向 API 管理添加多个 API、函数和其他服务,你可以将这些组件组装成一个集成产品,该产品可向客户端应用程序提供单一入口点。 使用 API 管理编写 API 具有以下优势:

  • 客户端应用耦合了表示业务逻辑的 API,而不是与单个微服务相关的基础技术实现。 你可以更改服务的位置和定义,而无需重新配置或更新客户端应用。
  • API 管理充当中介。 它将请求转发到适当的微服务(而不论位置如何),并将响应返回给用户。 用户看不到托管微服务的不同 URI。
  • 你可以使用 API 管理策略对产品中的所有微服务强制实施一致的规则。 例如,如果 JSON 是首选格式,则可以将所有 XML 响应转换为 JSON。
  • 此策略还可以强制实施一致的安全要求。

API 管理还包括有用的工具 - 你可以测试每个微服务及其操作,以确保它们按照你的要求运行。 你还可以监视已部署服务的行为和性能。

Azure API 管理支持将 Azure Function App 作为新 API 导入或将其追加到现有 API。 此过程会在 Azure Function App 中自动生成一个主机密钥,然后将其分配给 Azure API 管理中的命名值。

在下一个单元中,将订单详细信息微服务添加到在上一练习中创建的在线商店 API。 通过这样做,你可以将订单详情与产品详情微服务进行集成,并将它们作为集成 API 的一部分显示在同一域中。