什么是API网关
阿里云API网关是一种简单便捷、高可靠、高安全的API托管服务,提供创建、发布、监控、维护、下线等功能,涵盖快速发布、敏捷管理、精准运营的全生命周期管理。阿里云API网关通过权限认证、签名密钥、流量监控、路由管理等手段为API提供金融级防攻击的高度安全保护,同时降低API开放的风险。
对于API开发者,可以通过API网关完成API的创建、发布、管理等工作,从而将成熟的服务、数据等能力以API形式在API网关中开放给合作伙伴,实现业务能力的变现。同时,通过阿里云API网关可以轻松高效的完成API文档管理、SDK生成、环境管理等工作。
对于API的使用者,可以通过API网关获取并使用API开发者开放的API,提升应用程序的开发效率以及服务的复用率、减少开发时间、节省资源及成本。
阿里云API网关主要支持以下功能:
授权
基于应用的App Id进行权限管理,可参考创建应用
鉴权
基于应用的App Secret生成签名数据,确保调用方发送给API网关请求的安全性,可参考创建应用
流量控制
可控制单位时间内API允许被调用的次数,可参考创建流量控制策略:
• 支持按照API、应用、用户不同维度进行控制
• 流量控制粒度支持秒、分钟、小时以及天
访问控制
可控制指定的IP地址或IP地址段允许或禁止访问API,可参考创建访问控制策略
后端签名
支持API 网关发送到后端服务的请求中携带签名数据,用于后端服务验证请求是否从API 网关发起,从而校验API网关转发的请求的合法性,可参考创建签名密钥
服务路由
识别请求参数和路径,将调用方的API请求转发至后端服务;在收到后端服务的响应后,将响应转发给调用方,可参考创建API
入参校验
校验参数的有效性,如是否是必填项、数据类型等,可参考创建API
入参转换
后端参数映射,根据配置的参数映射关系,将调用方的请求路径转换为对应的后端请求路径,可参考创建API
支持Mock
在实际业务部署前,API网关模拟请求后端服务,提前对业务进行测试,可参考创建API
超时控制
API网关到后端服务的Socket超时时间设置,避免工作线程长时间等待,可参考创建API
VPC通道
如果API服务部署在阿里云ECS上,可以使用VPC通道打通API网关与ECS之间的网络链路,通过阿里云API网关将API服务暴露到互联网,可参考创建VPC通道
监控
阿里云API网关与云监控Argus服务紧密集成,实现API调用的指标监控,并可以在Argus上配置告警,提前发现问题,可参考查看监控数据
SDK/文档
对于应用拥有权限的API,API网关可生成对应的SDK,API的调用方只需要实现API调用的业务逻辑,便可快速对接API;
同时您可以根据API的配置信息,生成对应的API说明文档,方便API的调用方快速了解如何对接API,可参考下载SDK
计量策略
如果API的提供方需要根据API的调用次数对API的调用方进行收费,那么API的提供方可以设置自定义计量策略,API网关根据计量策略判定每次的API调用是否参与计费,可参考创建计量策略。
API网关核心概念
应用(APP)
调用方需要创建应用(APP)作为调用API时的身份。
App Id、App Secret
每个应用(APP)都有一对App Id和App Secret。
App Id:用于标识应用(APP)的身份。
App Secret:用于计算签名数据。
加密签名
API 请求到API网关时,需要携带签名信息,用于API网关对请求做身份验证。
授权
授予应用(APP)调用指定API的权限,由API提供方完成。应用被授权后才能调用API。
分组
API提供方管理API的最小单位。创建API需要先创建分组,可参考创建分组。
签名密钥
API提供方可以创建签名密钥并绑定指定的API,API网关到后端服务的请求会带上签名信息,用于后端服务验证API请求的安全性。
流量控制
用于API提供方对API、用户及应用进行流量限制,控制粒度可以是秒、分钟、小时及天。