springfox ApiModelProperty位置排序不起作用

问题描述

在我的Spring Boot应用程序中,我无法使用在@ApiModel带注释的类上正确排序的字段来管理我的swagger JSON。

首先,我将springfox lib导入到pom.xml中:

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>3.0.0</version>
</dependency>

第二,我创建了SwaggerConfig.java:

@Configuration
@EnableSwagger2
public class SwaggerConfig {

    @Bean
    public Docket swaggerSpringMvcPlugin() {
        return new Docket(DocumentationType.SWAGGER_2)  
                  .select()                                  
                  .apis(RequestHandlerSelectors.basePackage("my.package.to.enable.swagger.doc"))           
                  .paths(PathSelectors.any())       
                  .build()
                  .host("http://localhost:8080");
    }
}

第三,我创建了由@ApiModel注释的PersonDTO:

@ApiModel(value = "Person",description = "Person entity definition")
public class PersonDTO {

    @ApiModelProperty(value="Entity unique ID",position=0)
    public Long id;

    @ApiModelProperty(value="Person's number,useful to provide a convenient way to quickly communicate a person's reference",position=1)
    public Integer number;
    
    @ApiModelProperty(value="Person's first name",position=2)
    public String firstName;
    
    @ApiModelProperty(value="Person's last name",position=3)
    public String lastName;
    
}

然后,当我在URL http://localhost:[port]/[servlet-context-path]/v2/api-docs请求Json输出时,排名顺序似乎无效:

"definitions": {
    "Person": {
      "type": "object","properties": {
        "firstName": {
          "type": "string","description": "Person's first name"
        },"id": {
          "type": "integer","format": "int64","description": "Entity unique ID"
        },"lastName": {
          "type": "string","description": "Person's last name"
        },"number": {
          "type": "integer","format": "int32","description": "Person's number,useful to provide a convenient way to quickly communicate a person's reference"
        }
      },"title": "Person","description": "Person entity definition"
    }
}

解决方法

当前在3.0.0中已被破坏,请参见https://github.com/springfox/springfox/issues/3391

,

在控制器方法中使用@RequestBody 工作

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...