在swagger ui springfox中,使用Java对象作为请求参数会分解为原语

在swagger ui springfox中,使用Java对象作为请求参数会分解为原语,swagger,swagger-ui,springfox,Swagger,Swagger Ui,Springfox,我有以下控制器代码 @GetMapping("/users") public ResponseEntity<UserDto> getUsers(Filter filter) { return ResponseEntity.ok(userService.findUsers(filter)); } URL如下:/users?page=1&size=10&sort=+firstName。因此,我有一个从String到Sort的自定义转换器,它工作得非常好 但是,生成的招摇过市文档

我有以下控制器代码

@GetMapping("/users")
public ResponseEntity<UserDto> getUsers(Filter filter) {
    return ResponseEntity.ok(userService.findUsers(filter));
}
URL如下:
/users?page=1&size=10&sort=+firstName
。因此,我有一个从
String
Sort
的自定义转换器,它工作得非常好

但是,生成的招摇过市文档不正确:

"parameters":[  
           {  
              "name":"sort.propertyName",
              "in":"query",
              "required":false,
              "type":"string"
           },
           {  
              "name":"sort.order",
              "in":"query",
              "required":false,
              "type":"string",
              "enum":[  
                 "+",
                 "-"
              ]
           },
           {  
              "name":"page",
              "in":"query",
              "required":false,
              "type":"integer",
              "format":"int32"
           },
           {  
              "name":"size",
              "in":"query",
              "required":false,
              "type":"integer",
              "format":"int32"
           }
]
如您所见,它分解了
Filter
Sort
字段,并生成了两个参数:
Sort.propertyName
Sort.order
。相反,我希望有一个参数
sort
,类型为
string


有没有办法做到这一点?我已尝试使用
@ApiParam(name=“sort”,value=“sort”,type=“string”)
注释
排序
字段,但它不起作用。

您可以创建另一种类型规则,将
排序
视为
字符串

import static springfox.documentation.schema.AlternateTypeRules.*;
...
// Configure your docket bean
    new Docket(...)
         ...
         .alternateTypeRules(newRule(Sort.class, String.class)
         ...

您可以创建一个备用类型规则,将
排序
视为
字符串
谢谢@DilipKrishnan,这很有效!你能补充你的评论作为回答吗?这样我就可以接受了?
import static springfox.documentation.schema.AlternateTypeRules.*;
...
// Configure your docket bean
    new Docket(...)
         ...
         .alternateTypeRules(newRule(Sort.class, String.class)
         ...