Параметры запроса в классе case - Swagger Docs - PullRequest
0 голосов
/ 16 октября 2018

Я пишу API для своего приложения.Приложение позволяет администраторам искать пользователей с параметрами запроса.

Image of all the query params

Моя проблема

Естьмного параметров запроса, которые занимают много места в моих контроллерах.В настоящее время я решил эту проблему, используя все параметры 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 Docs?Как показано ниже:

def allQueryParamsInACaseClass (
  queryParams : AllQueryParams
)

1 Ответ

0 голосов
/ 22 октября 2018

Я исправил это с помощью @ModelAttribute, а затем создал класс дел с @BeanProperties.

def allQueryParamsInACaseClass ( 
  @ModelAttribute queryParams: AllQueryParams
)

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