You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

110 lines
4.3 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

四、Swagger注解的使用说明
@Api:用在请求的类上,表示对类的说明
tags="说明该类的作用可以在UI界面上看到的注解"
value="该参数没什么意义在UI界面上也看到所以不需要配置"
@ApiOperation:用在请求的方法上,说明方法的用途、作用
value="说明方法的用途、作用"
notes="方法的备注说明"
@ApiImplicitParams:用在请求的方法上,表示一组参数说明
@ApiImplicitParam:用在@ApiImplicitParams注解中指定一个请求参数的各个方面
name参数名
value参数的汉字说明、解释
required参数是否必须传
paramType参数放在哪个地方
· header --> 请求参数的获取:@RequestHeader
· query --> 请求参数的获取:@RequestParam
· path用于restful接口--> 请求参数的获取:@PathVariable
· div不常用
· form不常用
dataType参数类型默认String其它值dataType="Integer"
defaultValue参数的默认值
@ApiResponses:用在请求的方法上,表示一组响应
@ApiResponse:用在@ApiResponses中一般用于表达一个错误的响应信息
code数字例如400
message信息例如"请求参数没填好"
response抛出异常的类
@ApiModel:用于响应类上,表示一个返回响应数据的信息
这种一般用在post创建的时候使用@RequestBody这样的场景
请求参数无法使用@ApiImplicitParam注解进行描述的时候
@ApiModelProperty:用在属性上,描述响应类的属性
用法:
@ApiModelProperty(value="天气描述",name="weather",required=true,dataType="String",hidden=false)
@ApiModelProperty(value="表id",name="id",required=true,dataType="Integer",hidden=false)
Swagger的访问路径
port/swagger-ui.html
改成了
port/swagger-ui/
port/swagger-ui/index.html
8.逻辑删除
@ApiModelProperty(value = "状态0有效,1无效")
@TableLogic
private Integer enabled;
在字段上面添加@TableLogic注解在yml中配置逻辑删除值
mybatis-plus:
db-config:
logic-delete-value: 1 # 逻辑已删除值(默认为 1)
logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)
配置成功之后调用查询方法会默认在sql后面加上where enable=0
9.自动填充
@ApiModelProperty(value = "创建时间")
@TableField(value = "create_time",fill = FieldFill.INSERT)
private Date createTime;
@ApiModelProperty(value = "修改时间")
@TableField(value = "update_time",fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
使用fill = FieldFill.INSERT_UPDATE设置填充类型
/**
* @author WCH
* @date 2020/6/24 11:16
*/
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
/*this.strictInsertFill(metaObject, "createTime", LocalDateTime.class, LocalDateTime.now()); // 起始版本 3.3.0(推荐使用)
this.fillStrategy(metaObject, "createTime", LocalDateTime.now()); // 也可以使用(3.3.0 该方法有bug请升级到之后的版本如`3.3.1.8-SNAPSHOT`)*/
/* 上面选其一使用,下面的已过时(注意 strictInsertFill 有多个方法,详细查看源码) */
this.setFieldValByName("createTime", new Date(), metaObject);
this.setFieldValByName("updateTime", new Date(), metaObject);
//this.setInsertFieldValByName("operator", "Jerry", metaObject);
}
@Override
public void updateFill(MetaObject metaObject) {
// this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now()); // 起始版本 3.3.0(推荐使用)
// this.fillStrategy(metaObject, "updateTime", LocalDateTime.now()); // 也可以使用(3.3.0 该方法有bug请升级到之后的版本如`3.3.1.8-SNAPSHOT`)
/* 上面选其一使用,下面的已过时(注意 strictUpdateFill 有多个方法,详细查看源码) */
//this.setFieldValByName("operator", "Tom", metaObject);
//this.setUpdateFieldValByName("operator", "Tom", metaObject);
this.setFieldValByName("updateTime", new Date(), metaObject);
}
}