Springfox3一个类多个接口使用解决方案

问题描述

swagger在线文档,多个接口的入参类,字段有大量重复,例如分页查询、新增、修改;如果都用同一个类提供除去,则有的接口会有多余的参入属性,这样的接口文档使用起来不太友好;


解决方案

1.不同接口定义不同的类,例如:XXXQueryRequest/XXXCreateRequest/XXXUpdateRequest

带来的问题:

如果有属性变动,包括名称、类型、swagger注解文字等,要大量修改,可能会导致遗漏等问题

2.使用Springfox3-plus


<springfox3Plus.version>1.0-SNAPSHOT</springfox3Plus.version>

<dependency>
      <groupId>com.jiyao</groupId>
      <artifactId>jy-springfox3-plus-core</artifactId>
      <version>${springfox3Plus.version}</version>
</dependency>

git地址

功能点:

1.文档中的入参,支持按照java类中属性位置展示

2.支持入参属性分组;同一个类被不同场景使用

依赖好用的开源包

  <dependencies>
    <dependency>
      <groupId>com.google.guava</groupId>
      <artifactId>guava</artifactId>
    </dependency>

    <dependency>
      <groupId>cn.hutool</groupId>
      <artifactId>hutool-all</artifactId>
    </dependency>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
      <groupId>com.github.xiaoymin</groupId>
      <artifactId>knife4j-spring-ui</artifactId>
    </dependency>

    <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-boot-starter</artifactId>
    </dependency>

    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
    </dependency>

  </dependencies>

推荐

有个好工具墙裂推荐

3.10 导出离线文档 | Knife4j

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,生成Swagger实体类和controller的过程如下: 1. 首先需要在项目的pom.xml文件中添加Swagger的依赖,如下所示: ``` <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. 在Spring Boot的启动上添加@EnableSwagger2注解,启用Swagger: ``` @SpringBootApplication @EnableSwagger2 public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` 3. 创建实体类,并使用Swagger的注解来描述实体类: ``` @ApiModel(description = "用户信息") public class User { @ApiModelProperty(value = "用户ID", example = "1") private Long id; @ApiModelProperty(value = "用户名", example = "张三") private String name; @ApiModelProperty(value = "年龄", example = "18") private Integer age; // 省略getter和setter方法 } ``` 4. 创建控制器,并使用Swagger的注解来描述控制器和接口: ``` @RestController @RequestMapping("/users") @Api(tags = "用户管理") public class UserController { @PostMapping("") @ApiOperation(value = "创建用户") public User createUser(@RequestBody @ApiParam(value = "用户信息") User user) { // 创建用户的逻辑 } @GetMapping("/{id}") @ApiOperation(value = "查询用户") public User getUser(@PathVariable Long id) { // 查询用户的逻辑 } // 省略其它接口 } ``` 5. 启动项目,并访问http://localhost:8080/swagger-ui.html,即可看到Swagger的UI界面,可以通过界面来测试接口。 以上就是生成Swagger实体类和controller的过程,希望能帮到你。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值