API网关是提供服务开放和共享的企业级PaaS平台,提供发布管理、统一认证鉴权、流控、协议转换、服务审计等功能,帮助用户实现内部多系统间,或者内部系统与外部系统之间实现跨系统、跨协议的服务能力互通。
为什么需要API接口开发?
随着微服务架构的流行,API网关也越来越受欢迎。在微服务体系架构中,将应用程序划分为几个低耦合的服务(称为微服务),每个服务都有其独特的功能。尽管微服务提供了许多好处(最显着的是使它更易于开发,部署和维护应用程序的不同部分),但它们却使客户难以快速,安全地访问他们所需的信息。
API网关接口开发可以充当使用这些微服务的客户端的中央接口,从而解决其中的一些问题。客户端不必访问数十个单独的服务,而是可以向API网关发送单个请求,而API网关本身将聚集微服务。API网关的主要功能称为路由,但是使用API网关的原因还有很多。
对于服务数量众多、复杂度比较高、规模比较大的业务来说,引入API数据接口平台也有一系列的好处:
● 聚合接口使得服务对调用者透明,客户端与后端的耦合度降低
● 聚合后台服务,节省流量,提高性能,提升用户体验
● 提供安全、流控、过滤、缓存、计费、监控等API管理功能
在【数商云】与客户合作的技术实践中,客户往往需要通过统一的API接口平台进行服务能力的共享,提供发布、管理、保护和监控接口API的能力,实现跨系统、跨协议的服务能力互通。
API接口平台如何帮助企业开放和共享服务?
企业数字化转型过程中,如何实现多系统间的共享和集成,如何开放企业能力构建API接口开发生态系统,对服务管理提出了新的挑战。
》》》缺少有效应对突发流量的手段
痛点描述
传统方式通过控制入口流量,无法解决个别服务在大压力下无法正常响应,异常快速传递到关联服务,最终导致整个系统的雪崩。
方案描述
API接口管理平台提供的服务治理功能,可以有效应对电商大促、突发事件等场景下关键服务正常运行,降低系统性风险发生概率。
》》》数商云开发API接口平台通用功能
痛点描述
用户管理、认证鉴权作为应用通用功能,多个应用均需要重复开发和部署,增加了开发成本,降低了开发效率。
方案描述
API网关提供统一认证鉴权机制,开发人员无需重复实现认证鉴权等通用功能,只需专注于业务开发。
》》》非REST标准接口开放困难
痛点描述
传统基于WebService/gRPC等标准开发的应用,需要修改才能以REST接口形式对外暴露服务。
方案描述
数据服务API网关提供协议转化功能,支持将WebService、gRPC等接口以REST接口形式对外开放,用户无需适配开发。
》》》缺少API接口灰度发布机制
痛点描述
服务发布后,随着业务发展需要发布新的版本,如何管理多个版本,如何进行灰度测试,缺少灰度发布机制将严重影响管理效率。
方案描述
API接口网关支持服务多个版本发布,支持配置各版本流量百分比、根据请求参数路由请求到不同的版本,以满足不同的灰度版本要求。
企业API接口平台适用热门场景
》》》对外能力开放
将企业内部服务能力以标准API的形式开放给外部合作伙伴或第三方,与外部用户可管可控地共享服务、能力和数据,达成深度合作,共建新生态。
企业级API网关接口开发,提高微服务体系架构稳定性、响应效率
》》》内部业务集成
规范系统间API数据接口,快速完成企业内部系统的解耦及前后端分离,实现可观可控的相互访问。
企业级API网关接口开发,提高微服务体系架构稳定性、响应效率
》》》交付标准化
实现软件交付的标准化,促进交付质量,以及确保软件可迭代。
企业级API网关接口开发,提高微服务体系架构稳定性、响应效率
数商云API数据接口核心功能
▲ API全生命周期管理
支持包括API发布、API下线、API版本管理等生命周期管理功能
▲ 统一认证鉴权
支持AK/SK、JWT等认证方式,提供网关、服务和API等对象的鉴权管理功能
▲ 服务治理
支持超时重试、流控、降级和熔断等功能,同时提供网关的维护开关功能
▲ 服务路由
支持根据请求方法、Header、QueryString动态路由,以及负载均衡和版本分流
▲ 安全防护
支持IP黑白名单,支持CORS和JSONP跨域访问标准
▲ 协议转换
支持gRPC、DubboRPC、WebService接口转为REST对外开放
▲ 数据转换
支持请求Header、QueryString转换,以及请求Path重写
▲ 运维监控
支持查看服务或接口调用记录和调用统计,支持自定义配置告警规则
▲ 知识库
支持通过知识库自动创建API,统一接口定义,实现接口的标准化
API网关接口还可以做什么?
API网关接口平台不仅可以通过路由分发客户的请求,还可以在API数据管理方面提供很多好处。作为将客户端与服务连接起来的中央接口,API网关可以处理重要的安全和管理任务,例如身份验证,输入验证,指标收集和响应转换。
▲ 身份验证:API网关可能用于验证API调用
这样,即使客户端需要从多个服务访问数据,他们也只需要在网关进行一次身份验证即可。这样可以减少延迟,并确保身份验证过程在整个应用程序中保持一致。
▲ 输入验证:API网关也可以用于执行简单的逻辑
对于输入验证,这意味着确保客户的请求包含所有必要的信息,以正确的格式完成请求,然后再到达服务,该服务最终将检索请求的数据。
▲ 指标集合:由于所有请求都是通过API网关传递的,因此它是收集分析数据的理想场所
API网关可以例如测量用户发出的请求数量或正在中继到特定微服务的请求数量。这也允许将API网关用于速率限制:如果用户发送的请求太多,则网关可以拒绝它们,而不是将其传递给服务之一。
▲ 响应转换:通常,不同的设备和用户需要访问不同的信息
例如,移动设备可能比台式设备需要更少的数据,而内部客户端可能需要比外部客户端更多的信息。API网关可用于解决此问题,从而为每种客户端类型有效地呈现唯一的API。
以Netflix API网关为例。
NetFlix,也就是众所周知的网飞。
Netflix API网关是API网关最常被引用的例子之一。Netflix在2013年为API网关创建了第一个专用框架:Zuul。它处理了开发者期望的所有事情,从授权到路由再到分析,这为Netflix提供了我们上面讨论的所有好处。
但是,所有对Zuul的调用都处于阻塞状态,这意味着服务器必须响应客户端的调用才能再次使用该线程。于是Netflix决定:他们需要一种所谓的异步解决方案,该方案中的调用是非阻塞的,即使服务器未响应客户端的调用,该线程仍可以使用。因此,Zuul2.0(一个开源网关框架)诞生了。
Netflix API网关的主要特征之一是它能够处理来自1000多种设备类型的请求,然后根据客户端所运行的硬件和软件向其提供正确的信息。
▲ 写在最后:
API网关接口不过是的客户端和服务之间的一层。随着微服务体系结构的兴起,API网关日益普及,从API接口平台管理的角度来看,API网关也仍然具有明显的优势。