目录
3. 项目启动中加入Swagger注解的开关,启动Swagger功能
Swagger 的功能这里就不多说明了,相信大家都懂的,好奇多问一句,大家有知道其他类似Swagger的替代品吗?欢迎留言一起交流!!
只需要三步,快速启用Swagger功能,让你的项目实现Swagger在线文档,实时浏览,修改展示
1. pom.xml文件中添加Swagger的jar包
2. 配置Swagger
3. 项目启动中加入Swagger注解的开关,启动Swagger功能
具体如下:
1. pom.xml文件中添加Swagger的jar包
我这里使用的spring boot是2.1.4的版本
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
</parent>
Swagger 依赖:
<!-- swagger -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.1</version>
</dependency>
<!-- swagger-ui -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.10.0</version>
</dependency>
<!-- 解决 Illegal DefaultValue null for parameter type integer 异常 -->
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
<version>1.5.21</version>
</dependency>
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-models</artifactId>
<version>1.5.21</version>
</dependency>
2. 配置Swagger
@Configuration
@EnableSwagger2
public class Swagger2 {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.gcc.account"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("GCC Account API")
.contact(new Contact("gcc", "", ""))
.version("1.0")
.description("API描述")
.build();
}
}
3. 项目启动中加入Swagger注解的开关,启动Swagger功能
@SpringBootApplication(exclude = {
DataSourceAutoConfiguration.class
})
@EnableSwagger2
public class AccountApplication {
public static void main(String[] args) {
SpringApplication.run(AccountApplication.class, args);
}
}
下面这一步是在每个Controller 类上面加上swagger 注册的说明信息,其实这一步,可加可不加,不影响swagger文档的生成预览,
// 这一步是在每个Controller 类上面加上swagger 注册的说明信息,其实这一步,可加可不加,不影响swagger文档的生成预览,
@Api(tags = "用户账号相关api")
@RestController
@RequestMapping("/account")
public class AccountController {
/**
* 根据用户ID查询用户信息
*/
@ApiOperation(value = "根据用户ID获取用户信息",notes = "根据用户ID获取用户信息")
@ApiImplicitParams({
@ApiImplicitParam(paramType = "path", name = "userId", value = "用户ID", required = true, dataType = "Long")
})
@GetMapping(value = "/{userId}" )
public Wrapper<String> findByUserId(@PathVariable(value = "userId") Long userId){
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, "findByUserId");
}
}