003
1. mapper.xml文件技巧之-mapper文件完成主键回填
2. springboot项目技巧之-使用分页pageHelpper步骤
3. 格式化数据返回前端工具类
@Data
public class R<T> {
public static final Integer SUCCESS = 200;
public static final Integer FAIL = -1;
private Integer code;
private String msg;
private T data;
private R(Integer code, String msg, T data) {
this.code = code;
this.msg = msg;
this.data = data;
}
public static <T> R<T> ok(Integer code, String msg, T data) {
return new R<>(code, msg, data);
}
public static <T> R<T> ok(T data) {
return ok(SUCCESS, "请求成功", data);
}
public static <T> R<T> ok() {
return ok(null);
}
public static <T> R<T> fail(Integer code, String msg, T data) {
return new R<>(code, msg, data);
}
public static <T> R<T> fail(T data) {
return fail(FAIL, "请求失败", data);
}
public static <T> R<T> fail() {
return fail(null);
}
}
4. @DeleteMapping路径传参(类似还有GetMapping)
// PathVariable 路径传参
@DeleteMapping("{id}")//一般情况下;前会加路径如:delete/{id}
public R deleteById(@PathVariable Integer id) {//也可以:@PathVariable("前端传的参数的Key")
return dailyService.deleteById(id);
}
5.
(代码中required = false表示不传参也行;defaultValue = "1"不传参默认为1)
public R<PageInfo<Daily>> findByPage
(@RequestParam(value = "page", required = false, defaultValue = "1") Integer page,
@RequestParam(value = "size", required = false, defaultValue = "10") Integer size) {
return dailyService.findByPage(page, size);
}
6. SpringBoot整合Swagger/knife4j
knife4j: 在线接口文档(自动生成接口文档)和接口测试工具,
knife4j 是swagger工具的增强版本(knife4j底层是swagger)
添加依赖
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>3.0.3</version>
</dependency>
修改配置文件
spring:
mvc:
pathmatch:
# Springfox使用的路径匹配是基于AntPathMatcher的
# 所以需要配置此参数
matching-strategy: ant_path_matcher
Swagger的配置类
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
* Swagger配置类
* 当前项目信息,作者的信息,扫描控制器的包
* @author Administrator
* @date 2023/07/25
*/
@Configuration // 标识为一个配置类
@EnableSwagger2 // 启动Swagger(因为knife4j底层使用的是Swagger)
public class Knife4jConfig {
@Bean(value = "defaultApi2")
public Docket defaultApi2() { //Docket是容器的意思;返回一个容器作为bean;放在ioc容器中
String groupName = "3.X版本";
return new Docket(DocumentationType.OAS_30) //OAS_30是文档的版本;ctrl点进去会发现是3.0版本
.apiInfo(new ApiInfoBuilder() // ApiInfoBuilder对象中是当前项目信息;
.title("日报系统") //项目的标题
.description("# 日报系统所有的接口的入参,出参等等信息")
.termsOfServiceUrl("项目的发布地址[url]") //项目的发布地址
.contact(new Contact(
"Mr_zzl",
"https://www.cnblogs.com/fengzidexuanxue/",
"155964XXXX@qq.com")
) //导包:springfox.documentation.service.Contact
//name:作者名;;url:作者博客;;email:作者邮箱
.version("3.0")
.build())
// 分组名称
.groupName(groupName)
.select()
// 这里指定Controller扫描包路径:!!!!重要
.apis(RequestHandlerSelectors.basePackage("com.zzl.springdemo002.controller"))
.paths(PathSelectors.any())
.build();
}
}
在浏览器中访问: http://localhost:8080/doc.html
7. springboot配置视图解析器
8. 接口文档中大致包含信息(前后端约定的信息)
9. spring技巧之-黄色波浪线,不识别为单词不建议将每次项目出现的黄色下划线单词都加进词典;有时候多打错一个字母导致的错误随处可见(黄色波浪线有时会提示你);使用规范命名是最佳选择
10. Swagger/knife4j使用技巧:如何调试接口
11. Swagger/knife4j使用技巧:如何修改接口名称
12. Swagger/knife4j使用技巧:接口文档如何修改参数说明
13. Swagger报警告:Unable to interpret the implicit parameter configuration with dataType不影响运行
参考:https://blog.csdn.net/qq_45193304/article/details/112426507
原因:
这是因为Swagger中的注解@ApiImplicitParam有一个属性为dataTypeClass,该属性的默认值为Void.class,因为没有指定dataTypeClass属性的值,所以报该警告信息。