💥 swagger2 迁移到 openApi3

This commit is contained in:
b2baccline
2021-12-10 19:19:56 +08:00
parent 92e9d1593c
commit 021ad29a13
89 changed files with 875 additions and 800 deletions

View File

@@ -43,7 +43,7 @@
<artifactId>jakarta.validation-api</artifactId>
</dependency>
<dependency>
<groupId>io.swagger</groupId>
<groupId>io.swagger.core.v3</groupId>
<artifactId>swagger-annotations</artifactId>
</dependency>
</dependencies>

View File

@@ -1,7 +1,6 @@
package com.hccake.ballcat.common.i18n;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
@@ -12,28 +11,28 @@ import javax.validation.constraints.NotEmpty;
* @author hccake
*/
@Data
@ApiModel("国际化信息")
@Schema(title = "国际化信息")
public class I18nMessage {
/**
* 国际化标识
*/
@NotEmpty(message = "{i18nMessage.code}{}")
@ApiModelProperty(value = "国际化标识")
@Schema(title = "国际化标识")
private String code;
/**
* 消息
*/
@NotEmpty(message = "{i18nMessage.message}{}")
@ApiModelProperty(value = "文本值,可以使用 { } 加角标,作为占位符")
@Schema(title = "文本值,可以使用 { } 加角标,作为占位符")
private String message;
/**
* 地区语言标签
*/
@NotEmpty(message = "{i18nMessage.languageTag}{}")
@ApiModelProperty(value = "语言标签")
@Schema(title = "语言标签")
private String languageTag;
}

View File

@@ -17,7 +17,7 @@
<artifactId>ballcat-common-i18n</artifactId>
</dependency>
<dependency>
<groupId>io.swagger</groupId>
<groupId>io.swagger.core.v3</groupId>
<artifactId>swagger-annotations</artifactId>
</dependency>
<dependency>
@@ -32,6 +32,11 @@
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-annotation</artifactId>
</dependency>
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-common</artifactId>
<version>1.5.13</version>
</dependency>
</dependencies>
</project>

View File

@@ -1,14 +1,15 @@
package com.hccake.ballcat.common.model.domain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import org.hibernate.validator.constraints.Range;
import javax.validation.Valid;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import java.util.ArrayList;
import java.util.List;
@@ -19,43 +20,33 @@ import java.util.List;
* @version 1.0
*/
@Data
@ApiModel("分页查询参数")
@Schema(title = "分页查询参数")
public class PageParam {
/**
* 当前页
*/
@ApiModelProperty(value = "当前页码,从 1 开始", required = true, example = "1")
@Schema(title = "当前页码", description = "从 1 开始", defaultValue = "1", example = "1")
@NotNull(message = "当前页码不能为空")
@Min(value = 1, message = "当前页不能小于 1")
private long current = 1;
/**
* 每页显示条数,默认 10
*/
@ApiModelProperty(value = "每页条数,最大值为 100", required = true, example = "10")
@Schema(title = "每页显示条数", description = "最大值为 100", defaultValue = "10")
@NotNull(message = "每页条数不能为空")
@Range(min = 1, max = 100, message = "条数范围为 [1, 100]")
private long size = 10;
@ApiModelProperty(value = "排序规则")
@Schema(title = "排序规则")
@Valid
private List<Sort> sorts = new ArrayList<>();
@Schema(title = "排序元素载体")
@Getter
@Setter
@ApiModel("排序元素载体")
public static class Sort {
/**
* 排序字段
*/
@ApiModelProperty(value = "排序字段")
@Schema(title = "排序字段", example = "id")
@Pattern(regexp = "[A-Za-z0-9_]{1,64}", message = "排序字段格式非法")
private String field;
/**
* 是否正序排序
*/
@ApiModelProperty(value = "是否正序排序")
@Schema(title = "是否正序排序", example = "false")
private boolean asc;
}

View File

@@ -0,0 +1,42 @@
package com.hccake.ballcat.common.model.domain;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.validator.constraints.Range;
import org.springdoc.api.annotations.ParameterObject;
import javax.validation.Valid;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
/**
* 前端交互请求入参模型,将被转换为 PageParam 对象
*
* @see PageParam
* @author hccake
*/
@Data
@Valid
@ParameterObject
@Schema(title = "分页查询入参")
public class PageParamRequest {
@Schema(title = "当前页码", description = "从 1 开始", defaultValue = "1", example = "1")
@NotNull(message = "当前页码不能为空")
@Min(value = 1, message = "当前页不能小于 1")
private long current = 1;
@Schema(title = "每页显示条数", description = "最大值为 100", defaultValue = "10")
@NotNull(message = "每页显示条数不能为空")
@Range(min = 1, max = 100, message = "条数范围为 [1, 100]")
private long size = 10;
@Schema(title = "排序字段", description = ",最大值为 100", example = "id")
@Pattern(regexp = "[A-Za-z0-9_]{1,64}", message = "排序字段格式非法")
String sortFields;
@Schema(title = "排序方式", example = "desc")
String sortOrders;
}

View File

@@ -1,7 +1,7 @@
package com.hccake.ballcat.common.model.domain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.Collections;
@@ -14,19 +14,19 @@ import java.util.List;
* @version 1.0
*/
@Data
@ApiModel("分页返回结果")
@Schema(title = "分页返回结果")
public class PageResult<T> {
/**
* 查询数据列表
*/
@ApiModelProperty(value = "分页数据", required = true)
@Schema(title = "分页数据")
protected List<T> records = Collections.emptyList();
/**
* 总数
*/
@ApiModelProperty(value = "数据总量", required = true)
@Schema(title = "数据总量")
protected Long total = 0L;
public PageResult() {

View File

@@ -1,7 +1,6 @@
package com.hccake.ballcat.common.model.domain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
/**
@@ -10,43 +9,43 @@ import lombok.Data;
* @author Hccake
*/
@Data
@ApiModel("下拉框数据")
@Schema(title = "下拉框数据")
public class SelectData<T> {
/**
* 显示的数据
*/
@ApiModelProperty(value = "显示的数据", required = true)
@Schema(title = "显示的数据", required = true)
private String name;
/**
* 选中获取的属性
*/
@ApiModelProperty(value = "选中获取的属性", required = true)
@Schema(title = "选中获取的属性", required = true)
private Object value;
/**
* 是否被选中
*/
@ApiModelProperty(value = "是否被选中")
@Schema(title = "是否被选中")
private Boolean selected;
/**
* 是否禁用
*/
@ApiModelProperty(value = "是否禁用")
@Schema(title = "是否禁用")
private Boolean disabled;
/**
* 分组标识
*/
@ApiModelProperty(value = "分组标识")
@Schema(title = "分组标识")
private String type;
/**
* 扩展对象
*/
@ApiModelProperty(value = "扩展对象")
@Schema(title = "扩展对象")
private T extendObj;
}

View File

@@ -2,7 +2,7 @@ package com.hccake.ballcat.common.model.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
@@ -22,28 +22,28 @@ public abstract class BaseEntity implements Serializable {
* 创建者
*/
@TableField(fill = FieldFill.INSERT)
@ApiModelProperty(value = "创建者")
@Schema(title = "创建者")
private Integer createBy;
/**
* 更新者
*/
@TableField(fill = FieldFill.INSERT_UPDATE)
@ApiModelProperty(value = "更新者")
@Schema(title = "更新者")
private Integer updateBy;
/**
* 创建时间
*/
@TableField(fill = FieldFill.INSERT)
@ApiModelProperty(value = "创建时间")
@Schema(title = "创建时间")
private LocalDateTime createTime;
/**
* 修改时间
*/
@TableField(fill = FieldFill.INSERT_UPDATE)
@ApiModelProperty(value = "修改时间")
@Schema(title = "修改时间")
private LocalDateTime updateTime;
}

View File

@@ -3,7 +3,7 @@ package com.hccake.ballcat.common.model.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
@@ -21,7 +21,7 @@ public abstract class LogicDeletedBaseEntity extends BaseEntity {
*/
@TableLogic
@TableField(fill = FieldFill.INSERT)
@ApiModelProperty(value = "逻辑删除标识,已删除: 删除时间戳,未删除: 0")
@Schema(title = "逻辑删除标识,已删除: 删除时间戳,未删除: 0")
private Long deleted;
}

View File

@@ -1,8 +1,8 @@
package com.hccake.ballcat.common.model.result;
import com.hccake.ballcat.common.i18n.I18nClass;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import lombok.experimental.Accessors;
@@ -21,18 +21,18 @@ import java.io.Serializable;
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@ApiModel(value = "返回体结构")
@Schema(title = "返回体结构")
public class R<T> implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "返回状态码")
@Schema(title = "返回状态码")
private int code;
@ApiModelProperty(value = "返回信息")
@Schema(title = "返回信息")
private String message;
@ApiModelProperty(value = "数据")
@Schema(title = "数据")
private T data;
public static <T> R<T> ok() {