【实战记录】向企业化编程靠拢!springboot项目整合swagger

目录

前言

终于!!在这学期的课程中开始接触如何进行高效团队开发的课程!!!终于可以直面一直以来困扰我的问题,在团队合作中不同分工的人该如何交流一直是个大问题!!交流导致数据冗余,更新不及时的问题也会成为瓦解一个团队的根本原因。

内容

这种软件的首要要求应该是不会给编程人员带来太多的额外负担而且得简单快捷高效,不然跟传统写文档有什么差别…
每天编程三小时,写文档六小时…

于是,一个名为 Swagger 的软件走入了我的视线!今天就来使用它!!

优点:

  1. 页面简单清晰
  2. 配置简单,内容会随着编程的变化而变化
  3. 可以在线调试(页面版postman哈哈哈)

本地项目运行之后使用http://127.0.0.1:8080/swagger-ui.html即可查看效果,云服务器只需要改成你自己的地址即可。

添加依赖

pom文件里加俩依赖进去

        <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>

创建一个配置类(该部分用于配置页面标题部分的显示)

【实战记录】向企业化编程靠拢!springboot项目整合swagger

@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket webApiConfig(){
        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("webApi")
                .apiInfo(webApiInfo())
                .select()
                .build();
    }


    private ApiInfo webApiInfo(){
        return new ApiInfoBuilder()
                .title("标题")
                .description("项目介绍")
                .version("1.0")
                .build();
    }

}

对应页面效果
【实战记录】向企业化编程靠拢!springboot项目整合swagger

创建主体部分(即接口信息)

设置接口类型(不应直接使用 @RequestMapping)

先随便建个控制器
【实战记录】向企业化编程靠拢!springboot项目整合swagger
按照说明加上对应的注解

@RestController
@Api(tags = "第二个控制器")
public class testController2 {

    @RequestMapping("test2_A")
    @ApiOperation(value = "第二个控制器的请求一")
    public String test2_A(){
        return "success";
    }
}

启动项目,访问地址
【实战记录】向企业化编程靠拢!springboot项目整合swagger
但是点开一看,这也太繁杂了…一个接口包含了一堆,那要是接口一多起来真是很不方便…
【实战记录】向企业化编程靠拢!springboot项目整合swagger
至于这几种请求和RequestMapping之间的关系,放在下面的补充内容部分

通过修改代码
【实战记录】向企业化编程靠拢!springboot项目整合swagger
第一个控制器

@Api(tags = "第一个控制器")
@RestController
public class TestController {
    @GetMapping("get")
    @ApiOperation(value = "第一个控制器的get请求")
    public String getTest(){
        return "success";
    }

    @DeleteMapping("delete")
    @ApiOperation(value = "第一个控制器的delete请求")
    public String change(){
        return "success";
    }
}

第二个控制器

@RestController
@Api(tags = "第二个控制器")
public class testController2 {

    @PostMapping("test2_A")
    @ApiOperation(value = "第二个控制器的请求一")
    public String test2_A(){
        return "success";
    }
}

【实战记录】向企业化编程靠拢!springboot项目整合swagger

设置接口参数

改进控制器代码

@Api(tags = "第一个控制器")
@RestController
public class TestController {

    @GetMapping("get")
    @ApiOperation(value = "第一个控制器的get请求")
    public String getTest( @ApiParam("一个数字")int a,@ApiParam("另一个数字")int b){
        return "success";
    }

    @DeleteMapping("delete")
    @ApiOperation(value = "第一个控制器的delete请求")
    public String change(){
        return "success";
    }
    
}

效果
【实战记录】向企业化编程靠拢!springboot项目整合swagger

另一个控制器用一个实体类来当作参数,先写一个实体类

@Data
@ApiModel("用户实体类 User")
public class User {
    @ApiModelProperty(value = "姓名")
    private String name;
    @ApiModelProperty(value = "年龄")
    private Integer age;
    @ApiModelProperty(value = "电话")
    private String phone;
    @ApiModelProperty(value = "地址")
    private Integer address;
    @ApiModelProperty(value = "id")
    private String id;
}

控制器代码

@RestController
@Api(tags = "第二个控制器")
public class testController2 {

    @PostMapping("test2_A")
    @ApiOperation(value = "第二个控制器的请求一")
    public String test2_A(@ApiParam User user){
        return "success";
    }
}

效果
【实战记录】向企业化编程靠拢!springboot项目整合swagger

到这里基本用法已经熟悉了,后续熟悉其他用法的时候再来补充

补充内容

简述请求方式

request请求是一个统称,包含七种类型,这里简述常用的几种,其他的有机会再深入研究

post请求

请求会从body部分拿到数据
【实战记录】向企业化编程靠拢!springboot项目整合swagger

get请求

直接从URL获得数据
【实战记录】向企业化编程靠拢!springboot项目整合swagger

head请求

EAD方法与 GET 方法类似,也是请求从服务器获取资源,服务器的处理机制也是一样的,但服务器不会返回请求的实体数据,只会传回响应头,也就是资源的“元信息”。
HEAD 方法可以看做是 GET 方法的一个“简化版”或者“轻量版”。因为它的响应头与 GET 完全相同,所以可以用在很多并不真正需要资源的场合,避免传输 body 数据的浪费。
比如,想要检查一个文件是否存在,只要发个 HEAD 请求就可以了,没有必要用 GET 把整个文件都取下来。再比如,要检查文件是否有最新版本,同样也应该用 HEAD,服务器会在响应头里把文件的修改时间传回来。

delete请求

通过传入id删除资源

上一篇:swagger--注解/Map问题/Content Type/导出为MarkDown


下一篇:Spring Boot引入Swagger并对界面进行美化