接口编程要遵循的规范(接口设计之接口规范)
接口编程要遵循的规范(接口设计之接口规范)使用资源的复数形式,有前缀的要根据业务提前规划好。路径 可选/必选方法 HTTP.METHOD(GET/POST/PUT/DELETE)
作为一个程序猿,写接口是家常便饭。谁还不会写REST接口呀?然而接口人人会,写法各不同。但基本遵循几个条件,只要你意识到,平时注意,妈妈再也不用担心我的接口了,So Easy!
入参
参数校验
参数类型
可选/必选
方法
HTTP.METHOD(GET/POST/PUT/DELETE)
路径
使用资源的复数形式,有前缀的要根据业务提前规划好。
接口前缀
- B 端:(/business/)
- C 端:(/client/)
- RPC调用:(/provider/)
- 通用接口:(/common/)
命名规范
API URI 设计最重要的一个原则: nouns (not verbs!) ,名词(而不是动词)。
POST & PUT 方法的接口统一mediaType类型为:application/json;charset=UTF-8
| 方法 | URL | 功能 |
|--------|-----------------|------------------|
| GET | /users | 获取用户列表,分页 |
| GET | /users/1 | 获取 id 为 1 的用户|
| POST | /users | 创建一个用户 |
| PUT | /users/1 | 更新 id 为 1 的用户|
| DELETE | /users/1 | 删除 id 为 1 的用户|
响应数据(Result\ResultStatusEnum)
Result
{
"code": 0
"data": {}
"msg": "string"
}
ResultStatusEnum
@Getter
public enum ResultStatusEnum {
// 1xxxxx 系统层面
SYSTEM_BUSY(100001 "系统繁忙 请稍候再试")
// 2xxxxx 业务层面
ARGS_INVALID(200001 "参数无效")
// 3xxxxx第三方接口异常
ALIPAY_ERROR(300001 "支付宝支付异常")
// 4xxxxx Runtime异常
UNSUPPORTED_ENCODING(400001 "不支持的编码")
SUCCESS(0 "成功")
ERROR(-1 "失败");
/**
* 类型码
*/
private Integer code;
/**
* 信息
*/
private String msg;
ResultStatusEnum(Integer code String msg) {
this.code = code;
this.msg = msg;
}
}