Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 案例类查询参数-招摇过市单据_Scala_Spring Boot_Refactoring_Swagger_Openapi - Fatal编程技术网

Scala 案例类查询参数-招摇过市单据

Scala 案例类查询参数-招摇过市单据,scala,spring-boot,refactoring,swagger,openapi,Scala,Spring Boot,Refactoring,Swagger,Openapi,我正在为我的应用程序编写一个API。 该应用程序允许管理员使用查询参数搜索用户 我的问题 在我的控制器中有很多查询参数,它们占用了很多空间。目前,我已通过将所有QueryParameters作为方法中的参数来解决此问题,如下所示: def findUser ( @ApiParam(name = "firstName", value = "First name", `type` = "query") @RequestParam(value = "f

我正在为我的应用程序编写一个API。 该应用程序允许管理员使用查询参数搜索用户

我的问题

在我的控制器中有很多查询参数,它们占用了很多空间。目前,我已通过将所有QueryParameters作为方法中的参数来解决此问题,如下所示:

def findUser (
            @ApiParam(name = "firstName", value = "First name", `type` = "query")
            @RequestParam(value = "firstName", required = false) firstName: String,

            @ApiParam(name = "surname", value = "Surname", `type` = "query")
            @RequestParam(value = "surname", required = false) surname: String,

            @ApiParam(name = "email", value = "Email adress", `type` = "query")
            @RequestParam(value = "email", required = false) email: String,

            @ApiParam(name = "telephoneNumber", value = "Phone number", `type` = "query")
            @RequestParam(value = "telephoneNumber", required = false) telephoneNumber: String,

            @ApiParam(name = "landlineNumber", value = "Land line number", `type` = "query")
            @RequestParam(value = "landlineNumber", required = false) landlineNumber: String,

            @ApiParam(name = "dateOfBirth", value = "Date of Birth", `type` = "query")
            @RequestParam(value = "dateOfBirth", required = false) dateOfBirth: String,

            @ApiParam(name = "postalAddress", value = "Postal adress", `type` = "query")
            @RequestParam(value = "postalAddress", required = false) postalAddress: String,

            @ApiParam(name = "postCode", value = "Post code", `type` = "query")
            @RequestParam(value = "postCode", required = false) postCode: String
) = { 
// doing stuff
}
问题:

有没有办法将所有查询参数提取到Swagger文档中的类或对象中?如下图所示:

def allQueryParamsInACaseClass (
  queryParams : AllQueryParams
)

我使用
@modeldattribute
修复了它,然后用
@BeanProperties
创建了一个case类

def allQueryParamsInACaseClass ( 
  @ModelAttribute queryParams: AllQueryParams
)

case class AllQueryParams (
  ...
  @ApiParam(name = "firstName", value = "First name", `type` = "query")
  @RequestParam(value = "firstName", required = false) @BeanProperty firstName: String,
  ..
)