忽略用于声明性客户端URI参数的类型转换的属性

时间:2019-05-03 09:43:34

标签: kotlin micronaut

我正在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字段?

1 个答案:

答案 0 :(得分:1)

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

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