如何设计实现一个轻量的开放API网关.
文章地址: https://blog.piaoruiqing.com/blog/2019/08/05/开放api网关实践/
前言
随着业务的发展, 所对接的第三方越来越多, 各个业务系统面临着同样一个问题: 如何让第三方安全快速接入
. 此时有一个集验签、鉴权、限流、降级等功能于一身的API网关服务变得尤为重要.
接下来将分享如何设计实现一个轻量级的API开放网关, 包括接口设计、数据库设计、签名验签方案、鉴权等. 本文侧重于总体设计, 具体实现细节将陆续在后续的文章中分享.
API网关简介
API网关在微服务中尤为重要, 其抽象了鉴权、限流、降级等各个业务系统通用的功能. 作为众多内部业务系统外的一层屏障.
基本需求
- 签名及验签
- 鉴权
- 路由
- 权限及资源管理
总体设计
验签、鉴权等功能以职责链的方式进行处理, 网关根据配置进行路由并附加参数用以配合业务系统进行处理(如数据过滤等). 简要请求处理流程如下: