我正在编写一个 Micronaut 应用程序,但在编写一个控制器时遇到了问题,该控制器能够采用类型为枚举的可选参数。问题是,当我添加一个可空@QueryValue
的枚举类型时,每次我尝试访问端点时,它都会返回一个 403,我认为这是因为我启用了 Micronaut 安全性,它为任何未映射的 URL 返回一个 403。
@Get("/api/contents{?paginationParameter*,state}")
fun findContents(
@Valid @QueryValue paginationParameter: PaginationParameter,
@QueryValue state: ContentState?
): HttpResponse<Unit> {
return HttpResponse.noContent()
}
我不得不求助于更改state
类型String?
并手动序列化。但我想要的是,如果我的state
参数不存在于查询中,那么state
var 将为空,否则它会调用ContentState.valueOf
我已经尝试过参数绑定以及如何使用基于 JAX-RS 的 Restlet 自动将 @DefaultValue 映射到枚举参数?