我正在Micronaut中实现一个声明性客户端,如下所示:

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

MyMyRequestObject已通过Javax.Validation验证,如下所示:
data class MyRequestObject(val anything: String) {

    @AssertTrue
    fun isValid() = true
}

现在,当我通过客户端发送请求时,requestObject的值将生成以下查询/?anything=helloworld&valid=true。我需要从查询的isValid函数中排除该值。

现在我有两个问题
  • Micronaut用于“反序列化”对象的机制是什么?
  • 如何实现查询中不包括valid字段?
  • 最佳答案

    URL的扩展在此处进行:https://github.com/micronaut-projects/micronaut-core/blob/7cd78cf8b03cc78ac31bc2c262e86eae6edd58f0/http/src/main/java/io/micronaut/http/uri/UriTemplate.java#L202

    通过自省(introspection)api或反射,将检查该类并将其转换为 map 。当前,无法以这种方式排除属性。请提出问题以建议对此功能进行改进。

    关于kotlin - 忽略用于声明性客户端URI参数的类型转换的属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55967185/

    10-11 04:46