依赖:
<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>
创建对应的配置类
package com.xhn.springbootdemo.config; import org.springframework.context.annotation.Configuration; import springfox.documentation.RequestHandler; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; //自定义配置类 /** * Swagger2配置类 * 在与spring boot集成时,放在与Application.java同级的目录下。 * 通过@Configuration注解,让Spring来加载该类配置。 * 再通过@EnableSwagger2注解来启用Swagger2。 */ @Configuration @EnableSwagger2 //开启在线文档 public class SwaggerConfig { //声明api 文档的属性和 构建器 /** * 创建该API的基本信息(这些基本信息会展现在文档页面中) * 访问地址:http://项目实际地址/swagger-ui.html * @return */ private ApiInfo apiInfo(){ return new ApiInfoBuilder().title("springboot使用Swagger编写Restful风格的在线文档") .description("优乐选") .termsOfServiceUrl("http://www.youlexuan.com") .contact("xhn") .version("1.1.2") .build(); } /** * 创建API应用 * apiInfo() 增加API相关信息 * 通过select()函数返回一个ApiSelectorBuilder实例,用来控制哪些接口暴露给Swagger来展现, * 本例采用指定扫描的包路径来定义指定要建立API的目录。 * * @return */ public Docket createRestApi(){ return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("com.xhn.controller")) .paths(PathSelectors.any()) .build(); } }
对应的controller中添加对应的注解:
package com.xhn.springbootdemo.controller; import com.xhn.springbootdemo.po.UserBody; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.Collections; import java.util.List; @RestController @RequestMapping("/userbody") public class UserBodyController { private List<UserBody> listUser= Collections.synchronizedList(new ArrayList<UserBody>()); //实现查询所有用户 @GetMapping("/") public List<UserBody> getUserList(){ return listUser; } //实现添加操作 @PostMapping("/") public String createUser(UserBody userBody){ listUser.add(userBody); return "success"; } //实现删除功能 @DeleteMapping("/{id}") @ApiOperation(value="删除指定id用户信息", notes="根据id删除用户信息") @ApiImplicitParam(name = "id", value = "用户id", required = true, dataType = "Long") public String deleteUser(@PathVariable("id") Long id){ listUser.remove(id); return "success"; } //修改需要先查询出对应的一条数据 @GetMapping("/{id}") public UserBody getUserById(@PathVariable("id") Long id){ //获取指定id的数据 for (UserBody userBody : listUser) { if (userBody.getId() == id){ return userBody; } } return null; } //更新指定id用户信息 @PutMapping("/{id}") @ApiOperation(value="更新指定id用户信息", notes="根据id更新用户信息") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "用户ID", required = true, dataType = "Long"), @ApiImplicitParam(name = "userBody", value = "用户详细实体user", required = true, dataType = "userBody") }) public String updateUserBody(@PathVariable("id") Long id,UserBody userBody){ for (UserBody body : listUser) { if (body.getId()==id){ //就进行修改操作 body.setMobile(userBody.getMobile()); body.setAddress(userBody.getAddress()); body.setAge(userBody.getAge()); body.setName(userBody.getName()); } } return "success"; } }
效果图展示:
package com.xhn.springbootdemo.config;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.RequestHandler;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
//自定义配置类
/**
* Swagger2配置类
* 在与spring boot集成时,放在与Application.java同级的目录下。
* 通过@Configuration注解,让Spring来加载该类配置。
* 再通过@EnableSwagger2注解来启用Swagger2。
*/
@Configuration
@EnableSwagger2 //开启在线文档
public class SwaggerConfig {
//声明api 文档的属性和 构建器
/**
* 创建该API的基本信息(这些基本信息会展现在文档页面中)
* 访问地址:http://项目实际地址/swagger-ui.html
* @return
*/
private ApiInfo apiInfo(){
return new ApiInfoBuilder().title("springboot使用Swagger编写Restful风格的在线文档")
.description("优乐选")
.termsOfServiceUrl("http://www.youlexuan.com")
.contact("xhn")
.version("1.1.2")
.build();
}
/**
* 创建API应用
* apiInfo() 增加API相关信息
* 通过select()函数返回一个ApiSelectorBuilder实例,用来控制哪些接口暴露给Swagger来展现,
* 本例采用指定扫描的包路径来定义指定要建立API的目录。
*
* @return
*/
public Docket createRestApi(){
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.xhn.controller"))
.paths(PathSelectors.any())
.build();
}
}