Springboot+Swagger+Mybatisplus
什么是swagger?
Swagger 是一个规范且完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。
Swagger的好处
支持 API 自动生成同步的在线文档:使用 Swagger 后可以直接通过代码生成文档,不再需要自己手动编写接口文档了,对程序员来说非常方便,可以节约写文档的时间去学习新技术。
提供 Web 页面在线测试 API:光有文档还不够,Swagger 生成的文档还支持在线测试。参数和格式都定好了,直接在界面上输入参数对应的值即可在线测试接口。
Swagger的使用
导入依赖
<!--swagger jar start-->
<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>
<!--swagger jar end-->
配置类
@Configuration
@EnableSwagger2
public class Swagger2Config {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2).
apiInfo(apiInfo()).
select().
//自己的controller路径
apis(RequestHandlerSelectors.basePackage("com.kewen.controller")).
paths(PathSelectors.any()).
build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder().
title("springboot利用swagger构建api文档").
description("用户的CRUD").
version("1.0").
build();
}
}
配置文件
# 连接四大参数
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/0720?serverTimezone=UTC&useSSL=false
spring.datasource.username=kewen
spring.datasource.password=1023
# mybatis 别名扫描
mybatis.type-aliases-package=com.czxy.domain
# mapper.xml文件位置,如果没有映射文件,请注释掉
# mybatis.mapper-locations=classpath:mappers/*.xml
#驼峰映射
mybatis.configuration.map-underscore-to-camel-case=true
#日志打印
logging.level.com.czxy.dao : debug
启动类
@SpringBootApplication
@MapperScan("com.czxy.dao")
@EnableSwagger2
public class SwaggerDemoApplication {
public static void main(String[] args) {
SpringApplication.run(SwaggerDemoApplication.class, args);
}
}
domain
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
@TableName("t_user")
public class User {
@TableId(value = "id",type = IdType.AUTO)
private Integer id;
private String username;
private String password;
private String sex;
private Integer age;
private String email;
}
dao
public interface UserMapper extends BaseMapper<User> {
}
controller
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserMapper mapper;
@GetMapping("/{id}")
@ApiOperation(value = "查询用户",notes = "根据UserId对象查询")
@ApiImplicitParam(name = "id",value = "id", required = true,dataType = "Integer")
public User findById(@PathVariable("id") Integer id){
return mapper.selectById(id);
}
}
测试效果
访问地址 http://localhost:8080/swagger-ui.html