所需maven依賴:
<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>
Swagger2配置類:
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.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; @Configuration @EnableSwagger2 //開啟在線文檔 public class SwaggerConfig { // 聲明api 文檔的屬性 構建器 private ApiInfo apiInfo(){ return new ApiInfoBuilder().title("marrycode") .description("xxgc_hui") .termsOfServiceUrl("http://www.baidu.com") .contact("000") .version("1.0.0") .build(); } // 核心配置信息 public Docket createRestApi(){ return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("com.hui.springboot.controller")) .paths(PathSelectors.any()) .build(); } }
Controller使用案例:
import com.hui.springboot.bean.User; 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(value = "/user-test") public class UserController { private List<User> userList = Collections.synchronizedList(new ArrayList<User>()); // 獲取全部用戶信息 @GetMapping("/") @ApiOperation(value = "獲取數據庫中所有用戶信息",notes = "獲取並返回所有用戶信息") public List<User> getListUser(){ return userList; } // 獲取指定用戶信息 @GetMapping("/{id}") @ApiOperation(value = "獲取指定用戶信息",notes = "根據用戶id,查找指定用戶的所有信息") @ApiImplicitParam(name = "id",value = "用戶id",required = true,dataType = "Integer") public User getUser(@PathVariable("id") Integer id){ for (User user : userList) { if (user.getId() == id){ return user; } } return null; } // 添加用戶信息 @PostMapping("/") @ApiOperation(value = "添加用戶信息",notes = "獲取到用戶User參數,添加用戶信息") @ApiImplicitParam(name = "user",value = "用戶實體類信息",required = true,dataType = "User") public String createUser(User user){ userList.add(user); return "success"; } // 刪除指定用戶信息 @DeleteMapping("/{id}") @ApiOperation(value = "刪除指定用戶信息",notes = "根據用戶id刪除") @ApiImplicitParam(name = "id",value = "用戶id",required = true,dataType = "Integer") public String deleteUser(@PathVariable("id") Integer id){ userList.remove(getUser(id)); return "success"; } // 修改指定用戶信息 @PutMapping("/{id}") @ApiOperation(value = "更新指定用戶信息",notes = "先由id發起查找") @ApiImplicitParams({ @ApiImplicitParam(name = "id",value = "用戶id",required = true,dataType = "Integer"), @ApiImplicitParam(name = "user",value = "用戶詳細實體信息",required = true,dataType = "User") }) public String updateUser(@PathVariable("id") Integer id, User user){ for (User user1 : userList) { if (user1.getId() == id){ user1.setName(user.getName()); user1.setAge(user.getAge()); } } return "success"; } }
訪問接口文檔:
localhost:8080/swagger-ui.html
效果如下: