什么是API网关

什么是API网关?| 它如何能真正带来实际的结果?

Ana NetoTechnical Leave a Comment

"API "一词出现在万维网之前。最近又出现了一个新的术语。 API网关.这听起来有点奇怪,因为API的概念本身就已经暗示了一个网关"。

定义什么是 “API 网关”?

很高兴你这么问!你可能还记得 API 这个词在万维网出现之前就已经出现了,希望你知道 API 是 “应用程序编程接口 ”的缩写。.

但最近又出现了一个新词:“API 网关”:“API 网关”。乍听起来有点奇怪,因为 API 概念本身就已经暗示了网关。这可能会让你产生 "什么是 API 网关 "的疑问。.

简而言之。 API网关是一种管理工具,位于客户和后端服务集合之间。,每个都有自己的API。

因此,API网关就像一个 单一进入点 为一组定义的API。在这种情况下,客户通常是一个终端用户的应用程序。

从技术角度看,你也可以把 API 网关看成一个专门的反向代理,它可以让不同的 API 看起来就像一个单一的 API。.

微服务观点

API 网关 “一词经常在微服务环境中使用。. 微服务所提供的API的颗粒度往往与所需的不同。 这仅仅是微服务概念的结果:有几个小块在做小的不同的事情。

微服务通常提供细粒度的API,这意味着客户需要与多个服务互动。例如,一个需要轻松获得产品详细信息的客户可能需要从许多服务中获取数据。这就是为什么API网关在微服务世界中是有意义的。

在这种情况下,在微服务架构中,同样是 API网关的目标是为所有客户提供一个单一的进入点,但在这种情况下,这是在做 主要是通过简化呈现给客户的API.

API-Gateway-Diagram

API网关架构

在这张图中,你可以看到 API网关位于系统的边缘。.它作为一个管理工具或中间件,可以 在客户和后端服务集合之间进行调解.

这些 后台服务可以改变 位置、架构和实现(语言、框架和其他),影响最小。

一个建筑的观点

您不必局限于微服务 API 网关视图,尽管它可以被称为 “API 网关的经典视图”。.

你也可以 用更多的架构方式来看待API网关,将其视为一种设计模式。.我们可以说,API网关模式是双重的,因为它实际上对应的是 两个经典的四人帮设计模式适配器和外墙。

像一个 适配器即使接口不兼容,它也能实现通信和协作。

像一个 门面, 应用程序接口网关封装了应用程序的内部架构,并向其客户端提供应用程序接口。.

在微服务视图和架构视图中,API网关总是有一个协调的角色 而且,最终应该是为了使事情顺利进行。但是,如何才能从概念和定义转向结果?

API网关如何能带来实际效果

让我们深入实际,看看如何才能取得成果。.

为此,我们将使用一个特定的API网关。 我们自己的集成网关称为Connect Bridge. .把 Connect Bridge 看作是一个会 “说” SQL 语句的单一入口点。这意味着,无论使用什么代码(可以使用任何编程语言),都可以通过正常的 CRUD 语句与该 API 网关通信,就像与数据库通信一样:SELECT、INSERT、UPDATE、DELETE。.

Connect Bridge 有一个 “翻译器”(实际上我们称之为 “连接器”),用于我们希望通过 API 连接到的每个应用程序。该连接器可有效地将 SQL 语句转换为 API 调用。.

通过使用 Connect Bridge,您所需的代码量将会减少(少得多--根据项目的不同,代码量可减少至 90%),代码将更易于理解和测试,错误数量也将大大减少。.

有趣的是,当您使用 Connect Bridge 时,它使用 SQL 的事实会让您以为是在使用目标系统的数据库,例如微软 Exchange 的数据库。但不用担心,你并没有这样做,数据库的完整性是安全的--它是一个网关,总是通过其 API 访问目标系统。.

Connect Bridge - 工作原理信息图

使用Connect Bridge作为API网关的步骤

  1. 你的新的或遗留的应用程序的代码
  2. 用标准SQL的CRUD语句访问目标系统,就像访问一个数据库一样。
  3. Connect Bridge将SQL翻译成API调用
  4. 对于每个目标系统,这种翻译实际上是由一个连接器处理的

我可以使用哪些编程语言?

关于Connect Bridge可以使用什么编程语言的说明。正如我提到的,你几乎可以使用 任何编程语言.

你只需要确保它支持 ODBC, JDBC网络服务。 只要它是这样,你就可以走了。

例如,假设您想使用 Java。很好,那么你就可以生成一个 JDBC 连接字符串,这样你就有了一个 Java API 网关。.

您想使用 Node.js?这也不错,您可以生成一个网络服务连接字符串,然后就有了 Node.js API 网关。.

我可以继续说下去,但我想你现在已经明白了:你可以继续使用你喜欢的编程语言。

Connect Bridge连接线

Connect Bridge连接线

Connect Bridge API网关定价

Connect Bridge 是一种付费工具,价格因使用的连接器数量、类型和用户数量而异。为了让您对这种 API 网关的成本有一个大致的了解,我们可以告诉您价格从 150 欧元/月开始。有关定价的更多详情,请访问 此处.我们建议你自己尝试用 免费试用 首先,这样你就可以对生产力的收益有一个概念。

就投资回报率而言,你还应该考虑到,网关可以确保 即使目标系统被升级,最终的解决方案也能保持工作。 对你写的代码没有任何改变。所有的麻烦都将由网关来处理。

使用Connect Bridge的第一个步骤

为了指导你完成Connect Bridge的第一个步骤,我们将需要一个目标系统的例子。我们将选择微软的SharePoint,但也可以是许多其他的。

  1. 要求提供 免费试用.
  2. 安装Connect Bridge。
  3. 使用Connect Bridge管理工作室处理配置问题。
    • API网关的认证有两个步骤。要连接到SharePoint,用户需要连接到 Connect Bridge,然后 Connect Bridge 需要连接到SharePoint。
      • 为 SharePoint 添加账户(账户 - 添加账户)。您需要使用 SharePoint 认证。.
      • 要么允许默认的管理员用户使用该账户,要么创建一个新用户并允许该用户使用SharePoint账户。
    • o 点击 "新建查询 "选项,然后点击 "连接浏览器"。找到SharePoint连接器并打开,直到你找到DefaultConnection。右键点击它,选择获取连接字符串。然后复制适当的连接字符串。你的代码将需要它。

试用Connect Bridge

使用 "新建查询 "选项,测试出一个可以从SharePoint获得你所需要的数据的查询。在这里我们将使用一个查询的例子,但是,这个查询应该根据你从SharePoint获得的数据进行调整。

一旦你选择了 "新建查询 "选项,打开连接浏览器。

  1. 找到 SharePoint 连接器并打开,直到看到 “表 ”选项。你可以看到模式中包含一个名为 Site_Pages 的 "表"。.
  2. 我们可以使用查询 SELECT UniqueId, ContentType, Created, Modified, ContentVersion FROM Site_Pages LIMIT 10;
    这将从 SharePoint 的网站页面列表中选择前 10 个条目。.

请注意,虽然看起来我们在直接使用数据库,但事实完全不是这样。Connect Bridge只是访问了API,然后将数据呈现出来,就像它来自数据库一样。请在此自由探索一下。你也可以探索可用的存储过程。一旦你有了你的查询,请复制它,因为你会在你的代码上需要它。

同样重要的是要注意,在这一点上,你只是在测试东西。你可以把Connect Bridge管理工作室看作是你的游乐场。一旦你对你得到的查询感到满意,你只需在你的代码中使用它,就像你访问一个数据库一样。这是很直接的。

关于更详细的信息,你可以查看API网关文档,你会在收到你的 免费试用.你也可以检查API网关的日志,在Connect Bridge中,可以通过以下方式轻松完成 Connect Bridge管理工作室 使用导航栏上的管理中心-系统-日志选项。

结论和启示

API网关的概念一开始可能听起来过于理论化,然而,一旦你专注于像Connect Bridge这样的特定工具,就不难想象其好处。

  • 访问集中在API网关上,与目标系统的数量无关。
  • 不需要学习任何新的API或编程语言,可以减少错误,提高生产力
  • 维护工作也是集中和隔离的--所有的维护工作都在API网关方面,而不是在你的代码上,Connect Bridge本身保证了每个目标系统的前向兼容性(实际上,如果你需要,也可以向后兼容)。

如果你有任何意见或建议,请写在下面的表格里,我们会尽快回复。


关于作者

Ana Neto

作者 Ana Neto, 技术顾问 于 Connecting Software。

"自 1997 年以来,我一直是一名软件工程师,最近开始喜欢写作和公开演讲。您对本文有任何问题或评论吗?欢迎在下方留言!"

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

For security, use of Google's reCAPTCHA service is required which is subject to the Google Privacy Policy and Terms of Use.