§ API规范

§ URL命名

url主体部分,字母使用小写,统一使用/api打头,参数部分用驼峰表示

如:/api/adminsmuser?custType=01

§ 资源操作类型

为了兼容HTTP1.0协议,目前使用GET、POST两种请求方式

HTTP方法 URL 调用方法 备注
GET /api/xxx/ index 列表查询
GET /api/xxx/{id} show 详情查询
POST /api/xxx/ create 新增
POST /api/xxx/delete/{id} delete 删除
POST /api/xxx/update update 修改
POST /api/xxx/upcusttype updateCustType 自定义例子,客户类型修改

查询请求,使用GET方法;(注意:涉及用户相关信息,统一使用post请求)

数据修改,使用POST方法提交

  1. § 成功响应

    接口映射实体:cn.com.yusys.yusp.commons.web.rest.dto.ResultDto<T>

    名称 JSON KEY 类型 长度 必填 说明
    结果代码 code Int Y 默认0
    返回总条数 total Int 默认值0,分页时,分页条数
    结果内容 message String Y
    数据结构体 data<T> String Y API处理后,返回的数据内容
  2. § 失败响应

· 接口映射实体: cn.com.yusys.yusp.commons.web.rest.dto.ErrorDto

名称 JSON KEY 类型 长度 必填 说明
信息代码 code Int Y 数据配置
结果内容 message String Y 数据配置[t1]
信息 level String Y Success 成功
Info 提示
Warning 警告
Error 错误

§ API有效性校验

其次,实体类字段增加校验规则配置:

public class User extends AbstractAuditingEntity implements Serializable {
 
    private static final long serialVersionUID = 1L;
 
    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sequenceGenerator")
    @SequenceGenerator(name = "sequenceGenerator")
    private Long id;
 
    @NotNull
    @Pattern(regexp = Constants.LOGIN_REGEX)
    @Size(min = 1, max = 50)
    @Column(length = 50, unique = true, nullable = false)
    private String login;
 
    @JsonIgnore  #忽略序列化
    @NotNull
    @Size(min = 60, max = 60)
    @Column(name = "password_hash",length = 60)
    private String password;
 
    @Size(max = 50)
     @Column(name = "first_name", length = 50)
     private String firstName;
 
      @Size(max = 50)
      @Column(name = "last_name", length = 50)
       private String lastName;
 
         @Email
         @Size(min = 5, max = 100)
         @Column(length = 100, unique = true)
          private String email;
 
            @NotNull
             @Column(nullable = false)
                private boolean activated = false;
 
              @Size(max = 20)
             @Column(name = "reset_key", length = 20)
               @JsonIgnore
                private String resetKey;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

首先,在实体映射时, 启用有效性校验配置@Valid

public ResponseEntity<T> createEntity(@Valid @RequestBody T entity) {
}
1
2

[t1]通过cn.com.yusys.yusp.admin.service.util.MessageProvider.getMessage(String code)获取

最后更新于: 5/5/2022, 6:41:08 PM