Я пишу приложение Micronaut, и у меня возникают проблемы с написанием контроллера, который может принимать необязательный параметр, тип которого является перечислением. Проблема в том, что когда я добавляю значение nullable @QueryValue
с типом enum, каждый раз, когда я пытаюсь попасть в конечную точку, он возвращает 403, и я думаю, это потому, что у меня включена защита Micronaut, которая возвращает 403 для любого URL-адреса, который не сопоставлен .
@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
Я пробовал связывание аргументов, а также Как автоматически сопоставить @DefaultValue с параметром перечисления с помощью JAX -Рестлет на основе RS?