什么是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-Gateway-Diagram

API网关架构

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

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

一个建筑的观点

你不需要把自己限制在微服务API网关的观点上,尽管这可以称为 "API网关的经典观点"。

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

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

像一个 门面在这个过程中,API网关封装了应用程序的内部架构,并为其客户提供了一个API。

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

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

让我们深入了解更多的实际情况,看看我们如何能够取得成果。

为此,我们将使用一个特定的API网关。 我们自己的集成网关称为Connect Bridge.把Connect Bridge看作是一个 "会说话 "的SQL的单一入口点。这意味着无论使用什么代码(你可以使用任何编程语言),它都将与这个API网关进行通信,就像它是一个数据库一样,通过正常的CRUD语句。选择、插入、更新、删除。

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吗?那也不错,你可以生成一个Web服务连接字符串,你就有了你的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年开始做软件工程师,最近比较喜欢写作和公开演讲。  您对本篇文章或对Connect Bridge有什么疑问或意见? 我很希望得到您的反馈!

发表回复

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

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