4 springboot 集成swagger2

时间:2023-03-10 04:27:47
4 springboot 集成swagger2

Swagger:实时生成在线接口文档,方便测试和沟通

官网地址:https://swagger.io/

引入依赖

 <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>

在somefun-web模块中创建包 com.zhj.somefun.web.configurer

创建类Swagger2Config

一定要在启动类SomefunWebApplication能扫描的到的包下

 @Configuration
@EnableSwagger2
@Profile({"dev","test"}) // 表示只在开发和测试环境中使用
public class Swagger2Config { @Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
// 只有Api注解的方法才会生成文档
.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
//这个包下的控制器才会生成文档
.apis(RequestHandlerSelectors.basePackage("com.zhj.somefun.web.controller"))
.paths(PathSelectors.any())
.build();
} private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("测试平台")
.version("1.0")
.description("描述")
.build();
}
}

创建测试控制器类 LoginController

 @RestController
@RequestMapping("/login")
@Api("登录相关的api")
public class LoginController { @ApiOperation("登录接口")
@ApiImplicitParams({
@ApiImplicitParam(name = "username", value = "用户名", required = true, dataType = "String"),
@ApiImplicitParam(name = "password", value = "密码", required = true, dataType = "String")
})
@PostMapping("/login")
public String login(@RequestParam("username") String username,
@RequestParam("password") String password) {
return "ok";
} @ApiOperation("退出登录接口")
@PostMapping("/loginout")
public String loginout() {
return "ok";
} }

我们运行项目 访问http://localhost:8001/swagger-ui.html

4 springboot 集成swagger2

我们可以再次测试下将application.yml文件中的active值改为prod,然后在启动项目会发现无法在进入此页面。