API 网关的功能用途及实现方式

本文涉及的产品
AI 网关免费试用,400元 Serverless
简介: API 网关的功能用途及实现方式

1. API 网关诞生背景

前言

API 经济生态链已经在全球范围覆盖, 绝大多数企业都已经走在数字化转型的道路上,API 成为企业连接业务的核心载体, 并产生巨大的盈利空间。快速增长的 API 规模以及调用量,使得企业 IT 在架构上、模式上面临着更多的挑战。

API 是什么

API 网关是一个服务器,是系统的唯一入口。从面向对象设计的角度看,它与外观模式类似。API 网关封装了系统内部架构,为每个客户端提供一个定制的 API。它可能还具有其它职责,如身份验证、监控、负载均衡、缓存、请求分片与管理、静态响应处理。API 网关方式的核心要点是,所有的客户端和消费端都通过统一的网关接入微服务,在网关层处理所有的非业务功能。通常,网关也是提供 REST/HTTP 的访问 API。服务端通过 API-GW 注册和管理服务。

1. API 开放数量不断增加

毋庸置疑,随着企业的数据化进展,微服务改造,不同领域的 API 层出不穷,早在 2014 年 ProgrammableWeb 便预测 API 矢量可达到 100,000 到 200,000,并会不断增长。API 开发数量的增加给边缘系统带来机会,也随即演变了 API 网关的出现。大规模的 API 管理系统成为核心的发展趋势。

The API Economy Disruption and the Business of APIs,Nordic APIs

2. API 服务平台多样化

最初的 API 主要针对不同单体应用的网络单元之间信息交互,现已演变到服务间快速通讯。随着人工智能 EI,IOT 的不断演进,依赖 API 的平台不断更新,如 Web,Mobile,终端等,未来将会出现更多的服务体系。包括不限于:

  • 浏览器
  • IOS
  • Android
  • macOS
  • Windows
  • Linux
  • IOT
  • 其他移动端
  • 小程序
  • 终端设备(如智慧零售、工业的终端等)

3. 逐步替换原有企业的服务模式,API 即商品

卖计算,卖软件,卖能力,最终的企业的销售模式会逐步转变,能力变现,释放数据价值,依托不同的 API 管理平台创造新的盈利。

API 网关诞生背景

随着 API 的整体趋势发展,每个时期都面临着不同的挑战,架构也随之变化,具体如下图:

  1. 1960-1980:阿帕网、ATTP、TCP
  2. 1980-1990:点对点
  3. 1990-2000:消息中间件、ESB(企业服务总线,Enterprise service bus),SOA(面向服务的架构)
  4. 2000 至今:Integration as a service,RESTful services,API 管理,云上编排

API economy From systems to business services

从最原始的“传输协议通讯” -> “简单的接口集成” -> “消息中间件” -> “标准 REST”, 可以看到 API 的发展更趋向于简洁, 集成,规范化, 这也促使更多的系统边界组件不断涌现,在承载了万亿级的 API 经济的背景下, API 网关应运而生。

如果没有合适的 API 管理工具, API 经济不可能顺利开展。 同时提出了对于 API 管理系统的生命周期定义: planning(规划), design(设计), implementation(实施), publication(发布),operation(运维), consumption(消费), maintenance(维护) and retirement of APIs(下架)

如果没有合适的 API 管理工具, API 经济不可能顺利开展。 同时提出了对于 API 管理系统的生命周期定义: planning(规划), design(设计), implementation(实施), publication(发布),operation(运维), consumption(消费), maintenance(维护) and retirement of APIs(下架)

Magic Quadrant for Full Life Cycle API Management,Gartner, 2016-10-27

2. API 网关核心功能

  • API 生命周期管理
  • planning(规划)
  • design(设计)
  • implementation(实施)
  • publication(发布)
  • operation(运维)
  • consumption(消费)
  • maintenance(维护)
  • retirement(下架)
  • API 网关基础功能
  • 认证
  • 鉴权
  • 服务发现和集成
  • 负载均衡
  • 日志
  • 链路追踪
  • Monitoring
  • 重试
  • 限流
  • QoS
  • 熔断器
  • 映射
  • 缓存
  • Header、query 字符串 等 转义
  • API 文档
  • API 测试
  • SDK 生成
  • API 多版本、多环境管理
  • 插件
  • API 集中式 metrics、logging、tracing 管理
  • 安全
  • HTTPS
  • IP 黑白名单
  • 高可用
  • 可热重启
  • 高性能
  • 可扩展性
  • 无状态横向扩展

3. API 网关的用途

OpenAPI

企业需要将自身数据、能力等作为开发平台向外开放,通常会以 rest 的方式向外提供。最好的例子就是淘宝开放平台、腾讯公司的 QQ 开发平台、微信开放平台。

Open API 开放平台必然涉及到客户应用的接入、API 权限的管理、调用次数管理等,必然会有一个统一的入口进行管理,这正是 API 网关可以发挥作用的时候。

微服务网关

在微服务架构中,有一个组件可以说是必不可少的,那就是微服务网关,微服务网关处理了负载均衡,缓存,路由,访问控制,服务代理,监控,日志等。

API 网关在微服务架构中正是以微服务网关的身份存在。

API 中台

上述的微服务架构对企业来说有可能实施上是困难的,企业有很多遗留系统,要全部抽取为微服务改动太大,对企业来说成本太高。

但是由于不同系统间存在大量的 API 服务互相调用,因此需要对系统间服务调用进行管理,清晰地看到各系统调用关系,对系统间调用进行监控等。

API 网关可以解决这些问题,我们可以认为如果没有大规模的实施微服务架构,那么对企业来说微服务网关就是企业的 API 中台。

4. API 网关的价值

通过 API 网关,可以封装后端各种服务,以 API 的形式,提供给各方使用。API 网关产品的优势总结如下:

  • API 全生命周期管理:协助开发者轻松完成 API 的创建、维护、发布、监控等整个生命周期的管理。
  • 丰富的服务治理能力:支持 API 限流,参数校验,元数据维护,SDK 生成,批量操作等能力,协助开发者高效管理服务。
  • 可观察性:通过 API 网关,支持对调用次数,前后端错误次数等丰富监控指标的可视和告警能力;通过全面的监控告警,保证用户服务的可用性。
  • 可运营性:支持 企业 OpenAPI 定价,账单等运营功能
  • 服务安全:通过接入多种认证方式,确保用户 API 的访问安全性;通过严格的流量控制,避免用户服务的过载。
  • 前后端业务解耦
  • 多类型后端打通

5. API 网关的实现方式

主流 API 网关

  • Istio(以及最新出的 Envoy Gateway)
  • Linkerd
  • NGINX 及其商业版
  • KONG
  • Traefik
  • APISIX
  • RedHat 3scale
  • Netflix Zuul
  • Spring Cloud Gateway
  • Amazon API Gateway
  • 阿里云 API 网关(其最新开源的 Higress 是基于 Envoy Gateway 的)
  • 腾讯云 API 网关
  • MuleSoft

OpenAPI

对于定位 OpenAPI 平台的 API 网关,目前只能选择专业的 API 网关作为解决方案。

微服务网关

对于定位为「微服务网关」的 API 网关,业务有多种实现方式:

Service Mesh

典型的如 Istio,架构如下:

通用反向代理

基于 NGINX 或 NGINX + LUA + OpenResty 的实现。典型如:

  • NGINX Controller(API 管理、App 交付)
  • NGINX Plus(API Gateway,负载均衡,仪表板)
  • NGINX Ingress Controller
  • NGINX Service Mesh

API 网关框架

公有云解决方案

其实公有云的解决方案也是基于以上方案的定制化开发并产品化后发布到公有云上,主流的也是基于:NGINX + LUA + OpenResty, 或者最新的可能是基于 Istio Gateway 的实现

其他方案

  • 基于 Netty、非阻塞 IO 模型。
  • 基于 Node.js 的方案。这种方案是应用了 Node.js 的非阻塞的特性。
  • 基于 Java,如 MuleSoft
相关文章
|
10月前
|
人工智能 安全 API
Agent 工程师绕不开的必修课:API 网关 vs API 管理
本文探讨了“API管理”与“API网关”的起源、发展及差异,二者分别服务于API生命周期的不同阶段。API网关从流量网关演进至AI网关,承担运行时请求控制;API管理则从接口文档化发展到商业化平台,关注全生命周期治理。两者在实际应用中协同工作,通过分层架构和策略联动实现高效运营。未来,随着大模型应用的兴起,AI网关和MCP Server管理将成为新趋势,推动API技术迈入智能化和服务化的新阶段。
Agent 工程师绕不开的必修课:API 网关 vs API 管理
|
9月前
|
存储 缓存 API
实现电商物流API的实时追踪功能
在电商时代,实时物流追踪已成为提升用户体验的核心功能。本文详解如何通过物流API实现包裹位置追踪、ETA计算及数据优化,涵盖API集成、后端处理、前端展示与性能调优,助力构建高效可靠的追踪系统,提升用户信任与满意度。
479 0
|
9月前
|
消息中间件 缓存 监控
电商API接口功能全景图:商品、订单、支付、物流如何无缝衔接?
在数字化商业中,API已成为电商核心神经系统。本文详解商品、订单、支付与物流四大模块的API功能,探讨其如何协同构建高效电商闭环,并展望未来技术趋势。
|
API 开发者 Python
如何在API中实现搜索和过滤功能
本文介绍了如何为API添加搜索和过滤功能,使其更强大灵活。通过Flask示例,展示了按书名搜索、按作者或年份过滤书籍的方法,并结合两者实现复合查询。同时,提供了搜索不区分大小写、支持多过滤器组合、分页和输入验证等最佳实践。最后推荐了Apipost工具,它能简化API调试、负载测试及文档生成,提升开发效率。这些功能帮助用户更好地控制数据,优化API使用体验。
|
7月前
|
SQL 运维 关系型数据库
【产品升级】Dataphin V5.0版本发布:助力出海业务、增全量一体集成、异步调用API等更多功能等你发现
Dataphin是瓴羊推出的智能数据建设与治理平台,基于阿里巴巴内部实践,提供一站式数据建设与治理能力。V5.0版本研发新增支持Databricks作为离线计算引擎、支持MySQL数据库一键增全量同步、支持管理Hudi、Delta Lake表等;资产运营与消费持续提效,支持批量编辑目录名称及描述、Quick BI仪表板的上架管理等功能,增加资产可用性与盘点效率。
382 8
|
7月前
|
存储 数据可视化 Java
Java Stream API 的强大功能
Java Stream API 是 Java 8 引入的重要特性,它改变了集合数据的处理方式。通过声明式语法,开发者可以更简洁地进行过滤、映射、聚合等操作。Stream API 支持惰性求值和并行处理,提升了代码效率和可读性,是现代 Java 开发不可或缺的工具。
159 0
Java Stream API 的强大功能
|
8月前
|
供应链 API 数据安全/隐私保护
电商API数据接口的核心功能
电商API数据接口是电商平台与外部系统通信的核心工具,具备订单管理、库存同步和电子面单获取三大功能。它实现订单信息实时同步、多平台整合与状态更新,提升商家运营效率;通过库存数据双向同步,避免超卖并优化库存成本;同时自动获取电子面单号,加快发货流程。电商API在提升交易效率与用户体验方面具有重要作用。
|
9月前
|
Java API
Java API中Math类功能全景扫描
在实际使用时,这些方法的精确度和性能得到了良好的优化。当处理复杂数学运算或高精度计算时,`Math`类通常是足够的。然而,对于非常精细或特殊的数学运算,可能需要考虑使用 `java.math`包中的 `BigDecimal`类或其他专业的数学库。
216 11