1、SwaggerUI描述接口文档
2、集成Swagger
(1)引入相关依赖
<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>
(2)添加配置
package com.example.utils; /** * @author admin * @date 2018/11/3 */ 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.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; /** * @author zh * @ClassName cn.saytime.Swgger2 * @Description * @date 2017-07-10 22:12:31 */ @Configuration public class Swagger2 { @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("com.example.controller")) .paths(PathSelectors.any()) .build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("springboot利用swagger构建api文档") .description("简单优雅的restfun风格,www/baidu.com") .termsOfServiceUrl("www/baidu.com") .version("1.0") .build(); } }
(3)启动类添加注解
package com.example; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import springfox.documentation.swagger2.annotations.EnableSwagger2; @SpringBootApplication @EnableSwagger2//启动Swagger public class JpaApplication { public static void main(String[] args) { SpringApplication.run(JpaApplication.class, args); } }
(4)在controller添加配置使用
package com.example.controller; import com.example.entity.User; import com.example.service.impl.UserService; import io.swagger.annotations.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; /** * @author admin * @date 2018/10/31 */ @RestController @Api("userController相关api") public class UserController { @Autowired private UserService userService; @ApiOperation("获取用户") @ApiImplicitParams({ @ApiImplicitParam(paramType="header",name="id",dataType="Integer",required=true,value="用户的姓名",defaultValue="thuempire") }) @ApiResponses({ @ApiResponse(code=400,message="请求参数没填好"), @ApiResponse(code=404,message="请求路径没有或页面跳转路径不对") }) @GetMapping(value = "getUser") public User getUser(@RequestParam(value = "id") Integer id) { return userService.getUser(id); } @RequestMapping(value = "addUser") public User addUser(@RequestBody User user) { return userService.addUser(user); } }
(5)查看效果
http://localhost:8003/jpa/swagger-ui.html
(6)补充
@Api:修饰整个类,描述Controller的作用
@ApiOperation:描述一个类的一个方法,或者说一个接口
@ApiParam:单个参数描述
@ApiModel:用对象来接收参数
@ApiProperty:用对象接收参数时,描述对象的一个字段
其它若干
@ApiResponse:HTTP响应其中1个描述
@ApiResponses:HTTP响应整体描述
@ApiIgnore:使用该注解忽略这个API