class 情况下的查询参数 - Swagger 文档
Query Parameters in case class - Swagger Docs
我正在为我的申请写 API。
该应用程序允许管理员使用查询参数搜索用户。
我的问题
有很多查询参数在我的控制器中使用了很多space。目前我已经通过将所有 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
}
问题:
有没有办法将所有查询参数提取到 class 或 Swagger 文档中的对象中?如下图所示:
def allQueryParamsInACaseClass (
queryParams : AllQueryParams
)
我使用 @ModelAttribute
修复了它,然后使用 @BeanProperties
创建了一个案例 class。
def allQueryParamsInACaseClass (
@ModelAttribute queryParams: AllQueryParams
)
case class AllQueryParams (
...
@ApiParam(name = "firstName", value = "First name", `type` = "query")
@RequestParam(value = "firstName", required = false) @BeanProperty firstName: String,
..
)
我正在为我的申请写 API。 该应用程序允许管理员使用查询参数搜索用户。
我的问题
有很多查询参数在我的控制器中使用了很多space。目前我已经通过将所有 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
}
问题:
有没有办法将所有查询参数提取到 class 或 Swagger 文档中的对象中?如下图所示:
def allQueryParamsInACaseClass (
queryParams : AllQueryParams
)
我使用 @ModelAttribute
修复了它,然后使用 @BeanProperties
创建了一个案例 class。
def allQueryParamsInACaseClass (
@ModelAttribute queryParams: AllQueryParams
)
case class AllQueryParams (
...
@ApiParam(name = "firstName", value = "First name", `type` = "query")
@RequestParam(value = "firstName", required = false) @BeanProperty firstName: String,
..
)