goupan
2024-04-03 5506e9a45e717ffcb67ec313b5a4e8206d9b3a39
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
/*
 * Copyright [2020-2030] [https://www.stylefeng.cn]
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * Guns采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
 *
 * 1.请不要删除和修改根目录下的LICENSE文件。
 * 2.请不要删除和修改Guns源码头部的版权声明。
 * 3.请保留源码和相关描述文件的项目出处,作者声明等。
 * 4.分发源码时候,请注明软件出处 https://gitee.com/stylefeng/guns
 * 5.在修改包名,模块名称,项目代码等时,请注明软件出处 https://gitee.com/stylefeng/guns
 * 6.若您的项目无法满足以上几点,可申请商业授权
 */
package cn.stylefeng.roses.kernel.scanner.api.pojo.resource;
 
import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
 
import java.io.Serializable;
import java.util.Date;
import java.util.Set;
 
/**
 * API资源的包装类
 *
 * @author fengshuonan
 * @date 2018-01-03-下午3:27
 */
@Data
public class ResourceDefinition implements Serializable {
 
    /**
     * 应用的标识
     */
    @ChineseDescription("应用的标识")
    private String appCode;
 
    /**
     * 资源的标识
     */
    @ChineseDescription("资源的标识")
    private String resourceCode;
 
    /**
     * 资源名称
     */
    @ChineseDescription("资源名称")
    private String resourceName;
 
    /**
     * 项目编码(如果您不设置的话,默认使用spring.application.name填充)
     * <p>
     * 修复一个项目启动的时候会误删别的项目资源的问题
     *
     * @since 2.2.12
     */
    @ChineseDescription("项目编码")
    private String projectCode;
 
    /**
     * 控制器类名称
     */
    @ChineseDescription("控制器类名称")
    private String className;
 
    /**
     * 控制器中的方法名称
     */
    @ChineseDescription("控制器中的方法名称")
    private String methodName;
 
    /**
     * 资源所属模块
     */
    @ChineseDescription("资源所属模块")
    private String modularCode;
 
    /**
     * 模块中文名称
     */
    @ChineseDescription("模块中文名称")
    private String modularName;
 
    /**
     * 初始化资源的机器的ip地址
     */
    @ChineseDescription("初始化资源的机器的ip地址")
    private String ipAddress;
 
    /**
     * 是否是视图类型:true-是,false-否
     * 如果是视图类型,url需要以 '/view' 开头,
     * 视图类型的接口会渲染出html界面,而不是json数据,
     * 视图层一般会在前后端不分离项目出现
     */
    @ChineseDescription("是否是视图类型")
    private Boolean viewFlag;
 
    /**
     * 资源的请求路径
     */
    @ChineseDescription("资源的请求路径")
    private String url;
 
    /**
     * http请求方法
     */
    @ChineseDescription("http请求方法")
    private String httpMethod;
 
    /**
     * 资源的业务类型:1-业务类型,2-系统类型
     */
    @ChineseDescription("资源的业务类型:1-业务类型,2-系统类型")
    private Integer resourceBizType;
 
    /**
     * 是否需要登录
     */
    @ChineseDescription("是否需要登录")
    private Boolean requiredLoginFlag;
 
    /**
     * 是否需要鉴权
     */
    @ChineseDescription("是否需要鉴权")
    private Boolean requiredPermissionFlag;
 
    /**
     * 需要进行参数校验的分组
     */
    @ChineseDescription("需要进行参数校验的分组")
    private Set<String> validateGroups;
 
    /**
     * 接口参数的字段描述
     */
    @ChineseDescription("接口参数的字段描述")
    private Set<FieldMetadata> paramFieldDescriptions;
 
    /**
     * 接口返回结果的字段描述
     */
    @ChineseDescription("接口返回结果的字段描述")
    private FieldMetadata responseFieldDescriptions;
 
    /**
     * 资源添加日期
     */
    @ChineseDescription("资源添加日期")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;
 
    /**
     * 创建人
     */
    @ChineseDescription("创建人")
    private String createUser;
 
}