Необязательный параметр запроса перечисления Micronaut

Я пишу приложение 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?


person Archmede    schedule 30.06.2021    source источник