如何设计完成一个轻量的开放API网关
网关最基本的功能是转发请求, 常见的方式是根据配置中的路由规则将请求转发给内部服务, 如: 将/order/*的请求转发给内部的订单系统、/user/*的请求转发给内部的用户系统, 这种做法常用于对整个业务系统负责的基础网关. 而本文所设计的是服务于第三方的开放API网关, 并未使用上述做法, 而是将请求的资源作为参数放到请求体中, 其原因如下: 开放API服务于第三方, 屏蔽内部路径, 有利于提供命名统一且规范的接口. 请求接口的映射由网关的路由表维护, 内部接口升级甚至切换到新服务对外接口不变. 能够更细粒度地针对接口进行权限控制、限流、统计等. 地址 开放API网关对外提供唯一入口, 具体请求的资源作为参数传入. 公共参数 为了简化签名和验签的操作, 同时也提高灵活度, 唯一入口的约定了固定的公共参数和返回值, 如下: 公共请求参数 app_id: 应用ID, 应用ID是授权的主体, 是调用方的身份标识 method: 请求方法, 与内部URL对应, 由网关的路由表维护. timestamp和nonce用来防重放攻击. biz_content: 业务参数, 这个参数将转发给内部业务系统. (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |