swagger说明
Swagger 是⼀系列列 RESTful API 的⼯具,通过 Swagger 可以获得项⽬目的⼀种交互式文档,客户端 SDK 的⾃动生成等功能。
修改pom文件
在pom文件中新增swagger依赖
<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配置类
package com.chen.springbootswagger.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.service.Contact;
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 api(){
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.chen.springbootswagger"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo(){
return new ApiInfoBuilder()
.title("用户管理")
.description("用户管理中心 API 1.0 文档说明")
.termsOfServiceUrl("http://chenyongpeng.xyz")
.version("1.0")
.contact(new Contact("陈永鹏","http://chenyongpeng.xyz","947796393@qq.com"))
.build();
}
}
新建Controller
package com.chen.springbootswagger.controller;
import com.chen.springbootswagger.entity.User;
import com.chen.springbootswagger.utils.BaseResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@Api(value = "用户管理", description = "用户操作 API")
public class UserController {
@ApiOperation(value = "添加用户", notes = "根据参数创建用户")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "用户ID", required = true, dataType="Long", paramType = "query"),
@ApiImplicitParam(name = "name", value = "用户名称", required = true, dataType="String", paramType = "query"),
@ApiImplicitParam(name = "sex", value = "用户性别", required = false, dataType="String", paramType = "query")})
@PostMapping(value = "message")
public BaseResult<User> create(User user) {
return new BaseResult<>(0,"ok",new User());
}
}
新建通用实体类
package com.chen.springbootswagger.utils;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;
@ApiModel(description = "响应对象")
@Getter
@Setter
@AllArgsConstructor
public class BaseResult<T> {
private static final int SUCCESS_CODE = 0;
private static final String SUCCESS_MSG = "ok";
@ApiModelProperty(value = "响应消息",name = "msg",required = true,example = "" + SUCCESS_CODE)
private int code;
@ApiModelProperty(value = "响应消息",name = "msg")
private String msg;
@ApiModelProperty(value = "响应数据",name = "data")
private T data;
}
实体类
package com.chen.springbootswagger.entity;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
@Data
@Getter
@Setter
public class User {
private int id;
private String name;
private String sex;
}