Skip to content

API 规范

接口命名规范

请求方法规范

方法用途幂等性说明使用理由
GET读取数据用于查询操作,不修改数据GET 天然幂等,可被浏览器缓存,适合查询场景
POST提交数据用于创建或执行业务逻辑POST 可携带复杂请求体,适合写入操作,统一使用 POST 便于后端统一处理

URI 结构规范

结构说明

层级说明示例是否必需
模块名后端模块标识iamsyscms
权限标识免鉴权接口标识public
资源名业务资源名称userorder
操作后缀具体操作类型pagelistinfo

结构示例

完整 URI模块名权限标识资源名操作后缀说明
/iam/user/pageiam-userpage用户分页查询(需鉴权)
/iam/user/listiam-userlist用户列表查询(需鉴权)
/iam/user/info/{id}iam-userinfo用户详情查询(需鉴权)
/iam/user/saveiam-usersave用户保存(需鉴权)
/iam/user/removeiam-userremove用户删除(需鉴权)
/iam/public/loginiampubliclogin-用户登录(免鉴权)
/iam/public/picture/captchaiampublicpicturecaptcha获取验证码(免鉴权)

操作后缀与 URI 示例

后缀用途HTTP 方法URI 示例接口描述是否需要鉴权
/page分页查询GET/iam/user/page获取用户分页
/list列表查询GET/iam/user/list获取用户列表
/info详情查询GET/iam/user/info/{id}获取用户详情
/save保存(新增/修改一体)POST/iam/user/save保存用户信息
/create新增(仅有新增需求)POST/iam/user/create新增用户
/update修改(仅有修改需求)POST/iam/user/update修改用户信息
/remove删除(单个/批量)POST/iam/user/remove删除用户
/options下拉选项查询GET/iam/user/options获取用户下拉选项
-登录接口POST/iam/public/login用户登录
/captcha获取验证码GET/iam/public/picture/captcha获取图片验证码

接口组划分规则

规则说明示例
去除模块名删除一级模块标识/user/pageuser
去除权限标识删除 public 层级/public/loginlogin
去除操作后缀删除末尾操作标识/user/pageuser
剩余部分为接口组相同接口组共享业务逻辑user 接口组

接口参数规范

请求参数列表

参数名称参数位置类型默认值必填说明
tokenheaderString-用户认证 token
currentqueryInteger1页码
sizequeryInteger10每页条数
orderByqueryStringid desc排序字段
timeFromqueryString-时间范围开始
timeToqueryString-时间范围结束

参数格式规范

参数类型格式要求示例
时间格式yyyy-MM-dd HH:mm:ss2024-01-01 12:00:00
日期格式yyyy-MM-dd2024-01-01
页码范围≥ 1current ≥ 1
每页条数1-100size: 1-100

接口返回值规范

通用返回字段

字段名类型说明
codeInteger响应码
msgString响应消息
dataObject业务数据
requestTimeLong请求进入时间
responseTimeLong响应返回时间
costTimeLong请求耗时(毫秒)

响应码说明

响应码含义处理方式
-1系统错误需要开发人员处理
0业务提示只需反馈给页面
1成功正常业务处理
> 1业务错误参考错误码对照表

分页返回结构

字段名类型说明
currentInteger当前页码
sizeInteger每页条数
pageInteger总页码数
totalInteger数据总条数
offsetInteger偏移量
rowsArray业务数据列表

返回值示例

成功响应:

json
{
  "code": 1,
  "msg": "success",
  "data": {
    "id": 1,
    "name": "John"
  },
  "requestTime": 1620000000000,
  "responseTime": 1620000000100,
  "costTime": 100
}

分页响应:

json
{
  "code": 1,
  "msg": "success",
  "data": {
    "current": 1,
    "size": 10,
    "page": 10,
    "total": 100,
    "offset": 0,
    "rows": [...]
  },
  "requestTime": 1620000000000,
  "responseTime": 1620000000150,
  "costTime": 150
}

错误码对照表

Token 相关错误

错误码提示语说明
10001token 为空!需要在 header 中传递 token
10002token 不正确或已失效!token 无效或过期
10003非法传输 token!token 位置不正确
10004非法长度的 token!token 格式异常
10005token 签名校验失败!token 内容被篡改

权限相关错误

错误码提示语说明
20001用户登录环境改变!终端改变,需重新登录
20002api url can not be cors接口地址不被允许
20003origin url can not be cors前端域名不被允许
20004err routers, check the uri!路由错误

登录验证错误

错误码提示语说明
30001登录名或密码错误防止用户猜测
30002图片验证码错误验证码校验失败
30003需要图片验证码需要传入验证码
30004短信验证码错误短信验证码校验失败

数据操作错误

错误码提示语说明
40001操作需要带数据版本号!需要提交 version 字段
40002数据不存在或已不是最新的!数据被更新或删除
40003操作需要带数据标识!需要传入 id

订单相关错误

错误码提示语说明
50001订单支付超时已自动取消,请重新下单!订单超时
50002订单已完成支付,请不要重复支付!重复支付
50003订单状态异常,不能支付!订单状态错误

权限校验规范

权限校验规则

规则说明示例
token 校验需验证权限的接口必须在 header 传 tokenAuthorization: Bearer xxx
临时 token一次性 token 从专用接口获取仅支持 query 参数传递
Origin 判断通过 Origin header 确定前端站点可在 query 附加

免鉴权接口规则

规则说明示例
路径标识URI 中包含 public 层级/iam/public/login
白名单配置在安全配置类中无需登录即可访问
验证码接口获取验证码无需鉴权/iam/public/captcha

Released under the MIT License.