Свойство игнорировать для преобразования типа декларативного аргумента URI клиента

Я реализую в Micronaut декларативного клиента, который выглядит так:

@Get("/dostuff{?requestObject*}")
fun getStuff(requestObject: MyRequestObject): String

Мой MyRequestObject проверен с помощью Javax.Validation и выглядит так:

data class MyRequestObject(val anything: String) {

    @AssertTrue
    fun isValid() = true
}

Когда я сейчас отправляю запрос через клиента, значение из requestObject генерирует следующий запрос /?anything=helloworld&valid=true. Мне нужно исключить значение из функции isValid из запроса.

Теперь у меня два вопроса

  1. Какой механизм использует Micronaut для «десериализации» объекта?
  2. Как я могу добиться, чтобы поле valid не было включено в запрос?

person Florian Hansen    schedule 03.05.2019    source источник


Ответы (1)


Расширение URL-адреса происходит здесь: https://github.com/micronaut-projects/micronaut-core/blob/7cd78cf8b03cc78ac31bc2c262e86eae6edd58f0/http/src/main/java/io/micronaut/http/UriTemplate.java#L202

Либо через api интроспекции, либо через отражение класс проверяется и преобразуется в карту. В настоящее время нет возможности исключить свойства таким образом. Отправьте вопрос, чтобы предложить улучшение этой функции.

person James Kleeh    schedule 03.05.2019