IBM 最近宣布开源他们的 API 微网关(Microgateway)。这意味着任何一个开发人员和组织现在都可以无偿在他们的项目里使用这个软件。
API 网关是处于 API 服务和消费者应用程序之间的一个软件层。这个层的作用是为 API 提供各种常见的服务,比如安全、速率限定,以及变更管理工具。IBM 的微网关采用 Node.js 开发,并采用了 Swagger 2.0 规范。这一软件的开源震惊了开发社区,因为 IBM、微软、谷歌等公司的 API 网关都不是免费的。IBM 的微网关与 IBM 的 DataPower Gateway 是不一样的,后者是另一个企业解决方案,更加侧重安全。
IBM API 微网关的主要特性是网络流量管理、方便实现安全标准(比如 OAuth),以及策略管理。它还有一个 API 设计器,提供了一个图形用户界面用于创建 YAML API 规范。它还包含了一个小型的数据存储引擎和一个健壮的工作流引擎,可以用于持久化基本的 API 数据模型,并基于 API 的消费行为创建复杂的策略。微网关为常见的场景提供了预置的策略,比如 API 秘钥验证、基本的授权和速率限定。
IBM 微网关把主要关注点集中在策略管理上。用户如果不打算使用预置的策略,可以使用“if”和“swtich”语句创建自定义的策略,这些语句是流管理的组成部分。IBM 的产品经理 Ozair Sheikn 在 IBM 博客上介绍了如何扩展这些策略,而不仅仅使用基本的条件语句,“如果你打算卷起袖子应用自己的逻辑,JavaScript 策略提供了非常大的灵活性”。预置的基本条件语句和 JavaScript 配置能力让用户可以使用网关来满足自己的业务需求,并自定义业务逻辑。
微网关的另一个关注点是 API 的定义识别和创建。内置了 Swagger 规范意味着可识别的 API 定义标准,用户可以使用底层的 Swagger 编辑器来创建基于 YAML 的规范。因为编辑 YAML 十分敏感,犹如在大风中组装一个纸牌做的房子,图形用户界面可以让这个过程不那么费时。开发人员可以借助这些工具在网关内部创建自己的 API 定义,也就有可能为消费者 API 的定义创建策略。不过,这个网关只能识别两种 API:REST 和 SOAP。使用这两种类型之外 API 的开发者得不到相关的支持。类似地,如果 Swagger 规范与现有的 API 生态系统不匹配,那么微网关就不会如预期那样健壮。不过,开源的优势在于,如果项目需要新增或改进某些功能,他们就会去寻找代码贡献者。
评论