0

我正在编写一个 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参数不存在于查询中,那么statevar 将为空,否则它会调用ContentState.valueOf

我已经尝试过参数绑定以及如何使用基于 JAX-RS 的 Restlet 自动将 @DefaultValue 映射到枚举参数?

4

0 回答 0