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.
controller层参数默认值如何设置(分页查询部分代码为例)(代码中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. 接口文档中大致包含信息(前后端约定的信息)

image-20230726094907431

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属性的值,所以报该警告信息。

解决:

posted on 2023-07-26 11:37  数据厨房  阅读(33)  评论(0编辑  收藏  举报