您的位置:首页 > 编程语言 > Java开发

spring boot 整合Swagger2

2017-12-12 15:04 886 查看

包引入

<!-- swagger2-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.7.0</version>
</dependency>


在与spring boot入口类同级目录新建Swagger2类,

配置类

@Configuration
@EnableSwagger2
public class Swagger2 {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.xx.xx.web"))
.paths(PathSelectors.any())
.build();
}

private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("Spring Boot整合Swagger2")
.description("Spring Boot整合Swagger2")
.termsOfServiceUrl("http://localhost:9001/swagger-ui.html")
.contact("your contact")
.version("1.0")
.build();
}
}


过@Configuration注解,让Spring来加载该类配置。再通过@EnableSwagger2注解来启用Swagger2,至此,配置完成。

项目使用

controller代码

@Api(value = "测试api",description = "用户接口测试")
@RestController
@RequestMapping("users")
public class AuthController {

@ApiOperation(value = "获取用户信息",notes = "根据id获取用户信息")
@ApiImplicitParam(name = "id",value = "用户id",dataType = "Long",required = true,paramType = "path")
@RequestMapping(value = "{id}",method = RequestMethod.GET)
public String get(@PathVariable(name = "id") Long id){
return "test"+id;
}

@ApiOperation(value = "新增用户",notes = "新增用户")
@ApiImplicitParams({@ApiImplicitParam(name = "user",value = "用户信息",dataType = "User",required = true,paramType = "body")})
@RequestMapping(value = "",method = RequestMethod.PUT)
public String add(@RequestBody User user){
return  "test"+user.getUsername();
}

@ApiOperation(value = "更新用户信息",notes = "更新用户信息")
@ApiImplicitParams({@ApiImplicitParam(name = "user",value = "用户信息",dataType = "User",required = true,paramType = "body")})
@RequestMapping(value = "",method = RequestMethod.POST)
public String update(@RequestBody User user){
return "test"+user.getUsername();
}

@ApiOperation(value = "删除用户",notes = "根据id删除用户")
@ApiImplicitParam(name = "id",value = "用户id",dataType = "Long",required = true,paramType = "path")
@RequestMapping(value = "{id}",method = RequestMethod.DELETE)
public String delete(@PathVariable(name = "id") Long id){
return "test"+id;
}
}


User类

@Data
@ApiModel(value = "User",description = "用户信息")
public class User {
@ApiModelProperty(value = "用户id",required = true)
private Long id;

@ApiModelProperty(value = "用户名称",required = true)
private String username;

@ApiModelProperty(value = "备注")
private String memo;
}


@Data是lombok的注解,用于生成get set方法,可自行生成,或引入


<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.18</version>
</dependency>


启动项目访问http://localhost:9001/swagger-ui.html 即可,9001是我配置的web端口。



点开第一个,输入参数值,点击
try it out
即可测试接口。



基本使用方式上图已有案例,此处需要注意到的

1、 ApiImplicitParam里面paramType 这个参数,默认为空

path 以地址的形式提交数据

query 直接跟参数完成自动映射赋值

body 以流的形式提交 仅支持POST

header 参数在request headers 里边提交

form 以form表单的形式提交 仅支持POST
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring-boot swagger2 java