Java OpenApi生成器使用对象作为查询参数

Java OpenApi生成器使用对象作为查询参数,java,spring,swagger,openapi,pojo,Java,Spring,Swagger,Openapi,Pojo,我有以下控制器: public interface GetScoreController { @GetMapping(value = "/score", produces = MediaType.APPLICATION_JSON_VALUE) @Operation(parameters = {@Parameter(in = ParameterIn.QUERY, name = "request")}) Score getScore(ScoreRe

我有以下控制器:

public interface GetScoreController {
  @GetMapping(value = "/score", produces = MediaType.APPLICATION_JSON_VALUE)
  @Operation(parameters = {@Parameter(in = ParameterIn.QUERY, name = "request")})
  Score getScore(ScoreRequest request);
}
我希望OpenApi在生成Swagger文档时将
ScoreRequest
中的所有属性显示为查询参数,因为这是请求为POJO时的结果:


我不知道OpenApi是否真的允许这样做,但如果我有太多的请求参数,那么在一个独特的POJO中收集它们会更有用。

显然,您正在尝试开发RESTful或基于REST的实现。。。在这种情况下,不建议GET端点使用其中的对象,只允许
路径参数
查询参数

将带有大量查询参数的API视为过滤器选项是很常见的。不要惊慌失措

但是,我认为您的方法
getScore
应该只接收
scoreId
作为路径参数(甚至也是查询参数),作为OOP的最佳实践

请参阅这篇关于Stack的文章,它非常关注Rest Api设计中的最佳部分: 向方法签名添加注释

Score getScore(@ParameterObject ScoreRequest request);
}

谢谢你的反馈!我一定会考虑的。但是你的回答和我的问题完全无关…对不起@thmasker我不太清楚。。。你不可能做你想做的事。无法在OpenApi规范的查询参数中打印对象的属性。唯一的方法是手动操作,手动设置您想要的每个属性。似乎您需要方法签名中的注释。@LuisMuñoz这正是我要找的。谢谢自从@thmasker确认该评论解决了他的问题后,该评论就变成了答案;-)