接口路径设计
背景
- 因网关直接对外,所以后端很多内部接口会在无意中被网关透传到公网。
- 建立统一的路径规则,方便拦截器统一做登录校验
需求
- 暴露给网关的接口,可以认为直接暴露给公网
- 暴露给外网用户的接口,要有明确标识,作用如下:
- 提醒开发要做特殊权限处理
- 代码走查时可以重点注意是否有安全漏洞
- 暴露给外网B端的接口都是经过网关权限验证的,不能给C端用户使用
- 暴露给运管的接口不能给C端用户使用
- 定时任务接口无需登录,但是不能透传给外部系统
- 系统无需登录必须有统一路径,以便登录拦截器统一配置规则
设计
- 暴露给C端、B端、运管端网关的接口虽然都可以对公网,但权限要求不同,因此路径前缀要分开:
- C 端 /open
- B 端 /biz
- 运管端 /admin
- 定时任务无需登录,但是权限较高,因此前缀也要独立: /task
- 不需要登录的路径额外加上 /na [表示not authed]
- 为方便网关以及权限适配,接口版本号应该放在最后,比如:
- 某个方法更新版本,则:user/list/v1、user/update/v1
- 某个模块更新版本,则:user/v2/list、user/v2/update
图示