英文:
springfox ApiModelProperty position sorting not working
问题
在我的Spring Boot应用程序中,我无法正确管理带有@ApiModel
注释的类上字段正确排序的Swagger JSON。
首先,我在我的pom.xml中导入了Springfox库:
<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"
}
}
这就是你要的翻译,没有其他内容。
英文:
In my spring boot application, I cannot be able to manage my swagger JSON with fields ordered properly on @ApiModel
annotated class.
Firstly, I imported springfox lib into my pom.xml:
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>3.0.0</version>
</dependency>
Secondly, I created 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");
}
}
Thirdly, I created my PersonDTO annotated by @ApiModel
:
@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;
}
Then, when I requesting for Json output at url http://localhost:[port]/[servlet-context-path]/v2/api-docs
, it seems that the position order is not working:
"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"
}
}
答案1
得分: 4
这在3.0.0版中目前存在问题,请参见 https://github.com/springfox/springfox/issues/3391
英文:
This is currently broken in 3.0.0 see https://github.com/springfox/springfox/issues/3391
答案2
得分: 0
使用 @RequestBody
在控制器方法中操作。
英文:
Use @RequestBody works in controller method
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论