Skip to content

API 规范 ​

接口命名规范 ​

  • 请求方法规范:只能定义 GET, POST 请求
    • GET 请求用于读取数据,天然幂等
    • POST 用于请求逻辑。需要考虑幂等
  • uri 规范
    • 接口需要自解释。从接口的命名,即可猜测接口的用途。
    • 一级为后端模块名,如:sys,iam,cms 等
    • 免鉴权接口:二级为 public
    • 特殊用途接口可不按一级二级三级规范,但建议按此规范
    • 后缀规范:
      • /page 分页查询
      • /list 列表查询
      • /info 详情查询
      • /save 保存(新增修改一体,依赖于id判断)
      • /create 新增(仅有新增需求时)
      • /update 修改(仅有修改需求时)
      • /remove 删除(需要考虑单个及批量)
      • /options 列表查询(返回信息很简洁,一般用于生成下拉菜单)
    • 去除一级,public 级,和后缀,其余部分可视为接口组
  • uri 示例
    • 获取用户分页: GET /iam/user/page
    • 修改用户信息: POST /iam/user/update
    • 登录界面获取验图片证码: GET /iam/public/picture/captcha

接口参数规范 ​

  • 若接口不支持,忽略对应参数
参数名称参数含意类型默认值
token[header]用户tokenStringNaN
current页码Integer1
size每页数Integer10
orderBy排序字段Stringid desc
timeFrom时间范围开始yyyy-MM-dd HH:mm:ssNaN
timeTo时间范围结束yyyy-MM-dd HH:mm:ssNaN

接口的返回值规范 ​

参数名称参数值参数含意
code200功能无异常,正常返回
x400业务提示,只需反馈给页面
x401未认证,需要登录
x403无权限
x404资源不存在
x429请求过于频繁,被限流
x500系统错误,需要开发人员处理
x> 10000请看 code 对照表
msg提示消息正常为 Success,异常时为具体提示
requestTime请求时间请求进入 controller 的时间
responseTime响应时间请求在Controller 进行set 结果的时间
costTime时间消耗在 Controller 内消耗的时间,单位为毫秒
data详情正常返回时为业务数据【无具体业务数据时返回 true】
==分页====查询====有返回==
currentInteger页码
sizeInteger每页数
pageInteger总页码数
totalInteger叫数据条数
offsetInteger偏移量
rowsArray具体的业务数据

返回特殊 code 代码对照表 ​

code 定义与 sh-framework 的 ResultCode 枚举保持一致;认证失败统一返回 401,不再使用 token/登录态类业务码

代码提示语说明
10101无法识别应用编码,请设置请求头或应用域名缺少 appCode 识别信息
10102无法识别租户编码,请设置请求头或租户域名缺少租户识别信息
xxx
20002api url can not be cors接口地址不被允许使用
20003origin url can not be cors前端域名不被允许使用
20004err routers, check the uri!错误的路由
xxx
30001登录名或密码错误防止用户猜测,用户名和密码错误都使用同一个提示
30002图片验证码错误图片验证码错误
30003需要图片验证码需要图片验证码
30004验证码错误短信验证码错误
30005验证码错误邮箱验证码错误
xxx
40001操作需要带数据版本号!需要提交 version 字段
40002数据不存在或已不是最新的!数据id 不正确或已被更新
40003数据不存在!数据 id 不正确或已被删除
40004ID 不存在!操作需要带 id
40005参数不存在!缺少必要参数
40006数据重复,唯一性校验失败!唯一性校验失败
xxx
50001network error!网络错误
50002no available server!无可用服务节点
50003unknown ribbon error!负载均衡未知错误
xxx
60001订单支付超时已自动取消,请重新下单!订单超时
60002订单已完成支付,请不要重复支付!订单已支付
60003订单状态异常,不能支付订单其他异常状态

权限校验 ​

  • 所有需要验证权限的接口,都需要验证 token,需要在 header 中传值。
  • 对于只能使用一次的 token, 请从临时 token 接口获取token。临时 token 只能获取一次,只能 ? 传参
  • 后端确定前端为哪个站点,是通过 headers 里面的 Origin 获取的,可选在 ? 上附加此参数。如果需要区分 Origin,在 postman 上可以进行模拟

Released under the MIT License.