springboot集成swagger2接口文档
1.引入相关依赖pom.xml
本文旨在将以前用到过的东西做一个整理复习,将步骤做一个记录,本文是在之前springboot整合mybatis实现增删改查的基础上进行的。
<!-- swagger2 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
2.建立Swagger配置文件
package com.springboot.mybatis.config;
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.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket getUserDocket(){
ApiInfo apiInfo=new ApiInfoBuilder()
.title("企业管理")//api标题
.description("企业管理相关接口描述")//api描述
.version("1.0.0")//版本号
.build();
return new Docket(DocumentationType.SWAGGER_2)//文档类型(swagger2)
.apiInfo(apiInfo)//设置包含在json ResourceListing响应中的api元信息
.groupName("user") // 分组名称
.select()//启动用于api选择的构建器
.apis(RequestHandlerSelectors.basePackage("com.springboot.mybatis.controller"))//扫描接口的包
.paths(PathSelectors.any())//路径过滤器(扫描所有路径)
.build();
}
}
到这一步启动项目,访问地址就可以看到初始的swagger文档的效果了。
http://localhost:8080/swagger-ui.html.
3.参数实体类示例
package com.springboot.mybatis.domain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.ibatis.type.Alias;
import java.io.Serializable;
@Data
@Alias("Company")
@ApiModel("员工信息表")
public class Company implements Serializable {
private static final Long serialVersionUID=1L;
@ApiModelProperty("员工ID")
private int id;
@ApiModelProperty("员工姓名")
private String name;
@ApiModelProperty("员工年龄")
private int age;
@ApiModelProperty("员工地址")
private String address;
@ApiModelProperty("员工工资")
private Double salary;
}
4.接口实例代码
package com.springboot.mybatis.controller;
import com.springboot.mybatis.domain.Company;
import com.springboot.mybatis.service.CompanyService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Api(tags = "员工相关接口")
@RestController
public class CompanyController {
@Autowired
CompanyService companyService;
/**
* 查询所有员工
* @return
*/
@ApiOperation("查询所有员工")
@RequestMapping("/selectAllStaff")
public List<Company> selectAllStaff(){
return companyService.selectAllStaff();
}
/**
* 新增员工
* @return
*/
@ApiOperation("新增员工")
@RequestMapping(value = "/add",method = RequestMethod.POST)
public String insertStaff(@RequestBody Company company){
int id = company.getId();
List<Company> list = companyService.selectAllStaffById(id);
if(list.isEmpty()){
return companyService.insertStaff(company);
}
return "id已经存在";
}
/**
* 修改
*/
@ApiOperation("修改员工信息")
@RequestMapping(value = "/update",method = RequestMethod.POST)
public String updateStaffById(@RequestBody Company company){
int id = company.getId();
List<Company> list = companyService.selectAllStaffById(id);
if(list.isEmpty()){
return "id不存在,修改失败";
}
return companyService.updateStaffById(company);
};
/**
* 批量删除
*/
@ApiOperation("批量删除员工信息")
@RequestMapping(value = "/delete",method = RequestMethod.POST)
public String delete(@RequestParam("ids") List<Integer> ids){
return companyService.delete(ids);
};
}
至此,springboot集成swagger的操作已经完成,对于swagger其他api的使用,以后遇到再进行补充说明。