文章目录
- 场景
- 什么是api网关,有什么用
- 效果
- 接入过程
- 如何查看哪些人订阅了
- 其他
- api和应用之间的关系
- api网关不要走弯路
场景
项目接口对调用方开放的,任何人只要知道接口和参数就可以调用。 这非常不安全,于是集团下命令,要改造。
实现方式:
1、接入api网关。(耦合性小,不用改代码)
2、在代码中添加逻辑,实现接入控制。(需要改代码,而且每次扩展都要改)
很明显,接入api网关比较合理。
什么是api网关,有什么用
可以理解为一个api托管平台。
作用比较多:
安全认证和访问控制
负载均衡(slb: server load balance)
流量限制
监控(例如:调用了一个请求,谁都不认,通过api网关可以查到ip,从而判断是谁调用的)
效果
以军统和保密局为例:
例如原来的域名是(军统),接口谁都可以查看,那太不安全了:
http://www.juntong.com http://www.juntong.com/yonghu/getUser 查看人员接口
改革后的域名是(保密局):
http://api.baomiju.com 上下文为 /yonghu
http://api.baomiju.com/yonghu/getUser 查看人员接口
访问通过网关的服务需要,需要有对应权限,例如header中添加 auth_key , 123KL1234KL02348194
这样只有我开放的接口,并授权之后才可以访问,实现了访问管理。
接入过程
申请服务空间,申请账号。
因为军统维度很多,例如人员管理,武器管理等。 服务空间就是为了划分维度的,再申请账号,不同人员管理对应的部分。
进入服务空间,例如人员管理。 申请api网关。
api网关代理模块里面可以配置多个终端。
发布api。 新建应用,订阅api,就会为该应用生成一个key。
这样就实现了管理。
如何查看哪些人订阅了
portal(门户) | subscriptions(订阅) ,这里就可以看到订阅了。
其他
api和应用之间的关系
应用 订阅 api。
api网关不要走弯路
之前不懂,系统中的一个应用申请一个网关。那么很不方便,例如我有几十个应用,那真累死人了。
其实可以,域名直接申请api网关,那么就方便多了。