如何使用?

  1. pom

    1. <!--swagger-->
    2. <dependency>
    3. <groupId>io.springfox</groupId>
    4. <artifactId>springfox-swagger2</artifactId>
    5. </dependency>
    6. <dependency>
    7. <groupId>io.springfox</groupId>
    8. <artifactId>springfox-swagger-ui</artifactId>
    9. </dependency>
  2. config配置上配置Bean,

  3. 配置类注解@EnableSwagger2
  4. controller可添加注释类注解

    1. @Api:修饰整个类,描述Controller的作用
    2. @ApiOperation:描述一个类的一个方法,或者说一个接口
    3. @ApiParam:单个参数描述
    4. @ApiModel:用对象来接收参数
    5. @ApiModelProperty:用对象接收参数时,描述对象的一个字段
    6. @ApiImplicitParam:一个请求参数
    7. @ApiImplicitParams:多个请求参数
  5. 倘若配置类是在其他模块。本模块一定扫描不到,所以要用注解修改一下扫描路径:

//@ComponentScan(basePackages = “com.heyu”) //这里感觉我不用加这个注解,因为这个模块我少加了一个包,没想到吧!!!哈哈

  1. 浏览器访问路径:http://服务器ip:端口/swagger-ui.html

这里:http://localhost:8201//swagger-ui.html

疑问:

可以思考一下配置文件内容

  1. package com.heyu.yygh.common.config;
  2. import com.google.common.base.Predicates;
  3. import org.springframework.context.annotation.Bean;
  4. import org.springframework.context.annotation.Configuration;
  5. import springfox.documentation.builders.ApiInfoBuilder;
  6. import springfox.documentation.builders.PathSelectors;
  7. import springfox.documentation.service.ApiInfo;
  8. import springfox.documentation.service.Contact;
  9. import springfox.documentation.spi.DocumentationType;
  10. import springfox.documentation.spring.web.plugins.Docket;
  11. import springfox.documentation.swagger2.annotations.EnableSwagger2;
  12. /**
  13. * Swagger2配置信息
  14. */
  15. @Configuration
  16. @EnableSwagger2
  17. public class Swagger2Config {
  18. @Bean
  19. public Docket webApiConfig(){
  20. return new Docket(DocumentationType.SWAGGER_2)
  21. .groupName("webApi")
  22. .apiInfo(webApiInfo())
  23. .select()
  24. //只显示api路径下的页面
  25. .paths(Predicates.and(PathSelectors.regex("/api/.*")))
  26. .build();
  27. }
  28. @Bean
  29. public Docket adminApiConfig(){
  30. return new Docket(DocumentationType.SWAGGER_2)
  31. .groupName("adminApi")
  32. .apiInfo(adminApiInfo())
  33. .select()
  34. //只显示admin路径下的页面
  35. .paths(Predicates.and(PathSelectors.regex("/admin/.*")))
  36. .build();
  37. }
  38. private ApiInfo webApiInfo(){
  39. return new ApiInfoBuilder()
  40. .title("网站-API文档")
  41. .description("本文档描述了网站微服务接口定义")
  42. .version("1.0")
  43. .contact(new Contact("heyu", "http://heyu.com", "2051349510@qq.com"))
  44. .build();
  45. }
  46. private ApiInfo adminApiInfo(){
  47. return new ApiInfoBuilder()
  48. .title("后台管理系统-API文档")
  49. .description("本文档描述了后台管理系统微服务接口定义")
  50. .version("1.0")
  51. .contact(new Contact("heyu", "http://heyu.com", "2051349510qq.com"))
  52. .build();
  53. }
  54. }

两个bean组件,一个组件拦截一种请求,那也有注释!!!
image.png
image.png