接口路径设计指南

2022/05/31 specification

接口路径设计

背景

  1. 因网关直接对外,所以后端很多内部接口会在无意中被网关透传到公网。
  2. 建立统一的路径规则,方便拦截器统一做登录校验

    需求

  3. 暴露给网关的接口,可以认为直接暴露给公网
  4. 暴露给外网用户的接口,要有明确标识,作用如下:
    1. 提醒开发要做特殊权限处理
    2. 代码走查时可以重点注意是否有安全漏洞
  5. 暴露给外网B端的接口都是经过网关权限验证的,不能给C端用户使用
  6. 暴露给运管的接口不能给C端用户使用
  7. 定时任务接口无需登录,但是不能透传给外部系统
  8. 系统无需登录必须有统一路径,以便登录拦截器统一配置规则

    设计

  9. 暴露给C端、B端、运管端网关的接口虽然都可以对公网,但权限要求不同,因此路径前缀要分开:
    1. C 端 /open
    2. B 端 /biz
    3. 运管端 /admin
  10. 定时任务无需登录,但是权限较高,因此前缀也要独立: /task
  11. 不需要登录的路径额外加上 /na [表示not authed]
  12. 为方便网关以及权限适配,接口版本号应该放在最后,比如:
    1. 某个方法更新版本,则:user/list/v1、user/update/v1
    2. 某个模块更新版本,则:user/v2/list、user/v2/update

      图示

      image

Search

    欢迎关注我的微信公众号

    Bishion

    Table of Contents