Swagger-UI入门教程

小灰灰 2023-07-08 04:58 35阅读 0赞

目录

1.添加依赖

2.添加配置

3.代码演示

4.文档效果

5.注解说明


1.添加依赖

  1. <!--Swagger-UI API文档生产工具-->
  2. <dependency>
  3. <groupId>io.springfox</groupId>
  4. <artifactId>springfox-swagger2</artifactId>
  5. <version>2.7.0</version>
  6. </dependency>
  7. <dependency>
  8. <groupId>io.springfox</groupId>
  9. <artifactId>springfox-swagger-ui</artifactId>
  10. <version>2.7.0</version>
  11. </dependency>

2.添加配置

  1. @Configuration
  2. @EnableSwagger2
  3. public class Swagger2Config {
  4. @Bean
  5. public Docket createRestApi() {
  6. return new Docket(DocumentationType.SWAGGER_2)
  7. .apiInfo(apiInfo())
  8. .select()
  9. //为当前包下controller生成API文档
  10. .apis(RequestHandlerSelectors.basePackage("com.ak.mall.controller"))
  11. //为有@Api注解的Controller生成API文档
  12. // .apis(RequestHandlerSelectors.withClassAnnotation(Api.class))
  13. //为有@ApiOperation注解的方法生成API文档
  14. // .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
  15. .paths(PathSelectors.any())
  16. .build();
  17. }
  18. private ApiInfo apiInfo() {
  19. return new ApiInfoBuilder()
  20. .title("SwaggerUI演示")
  21. .description("ak-mall")
  22. .contact("ak")
  23. .version("1.0")
  24. .build();
  25. }
  26. }

3.代码演示

  1. @Api(tags = "TestSwaggerController", description = "测试Swagger控制器")
  2. @RestController
  3. @RequestMapping("/test/swagger")
  4. public class TestSwaggerController {
  5. @ApiOperation(value = "测试查询接口")
  6. @RequestMapping(value = "query",method = RequestMethod.POST)
  7. public QueryOutVO query(@Validated @RequestBody QueryInVO queryInVO) {
  8. QueryOutVO queryOutVO = new QueryOutVO();
  9. BeanUtils.copyProperties(queryInVO, queryOutVO);
  10. return queryOutVO;
  11. }
  12. }
  13. @Data
  14. @ApiModel(value = "查询入参VO")
  15. public class QueryInVO {
  16. @NotBlank(message = "id 为空")
  17. @ApiModelProperty(value = "主键id")
  18. private String id;
  19. @NotBlank(message = "name 为空")
  20. @ApiModelProperty(value = "名称")
  21. @JsonProperty(value = "nameA")
  22. private String name;
  23. }
  24. @Data
  25. @ApiModel(value = "查询返参VO")
  26. public class QueryOutVO {
  27. @ApiModelProperty(value = "主键id")
  28. private String id;
  29. @ApiModelProperty(value = "名称")
  30. @JsonProperty(value = "nameB")
  31. private String name;
  32. }

4.文档效果

http://localhost:8080/swagger-ui.html

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjAzMjE5OQ_size_16_color_FFFFFF_t_70

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjAzMjE5OQ_size_16_color_FFFFFF_t_70 1

5.注解说明

  • @Api:用于修饰Controller类,生成Controller相关文档信息
  • @ApiOperation:用于修饰Controller类中的方法,生成接口方法相关文档信息
  • @ApiParam:用于修饰接口中的参数,生成接口参数相关文档信息
  • @ApiModel:用于修饰实体类,生成实体类相关文档信息
  • @ApiModelProperty:用于修饰实体类的属性,当实体类是请求参数或返回结果时,直接生成相关文档信息
  • @JsonProperty:用于修饰实体类的属性别名,当实体类是请求参数或返回结果时,直接生成相关文档信息

发表评论

表情:
评论列表 (有 0 条评论,35人围观)

还没有评论,来说两句吧...

相关阅读

    相关 springboot集成配置swaggerUI

    1.使用swagger的原因 手写Api文档的几个痛点: 1. 文档需要更新的时候,需要再次发送一份给前端,也就是文档更新交流不及时。 2. 接口返回结果不明确 3

    相关 Maven+SpringMVC+SwaggerUI

    项目中需要开放接口供对接方调试,需要简单的web界面,故选择SpringMVC进行HTTP接口开发,SwaggerUI作为用户界面,做接口调用。 一、搭建SpringMVC