使用 Mapstruct 实现 REST "fields" 查询参数
Implementing REST "fields" query param with Mapstruct
我正在尝试使用 Mapstruct 实现 REST 查询参数“字段”。按照惯例,REST“字段”查询参数允许您在对实体执行 GET 请求时将其值指定为逗号分隔的实体字段列表。这与返回实体的所有字段相反,这是在省略“fields”查询参数时发生的情况。
示例:
获取locahost/blah/1
响应 {"a":"1", "b":"2", c:"3"}
GET local/blah/1?fields=a,c
响应 {"a":"1", "c":"3"}
所以我想让 Mapstruct 做的只是映射 bean 的字段,这些字段的名称是我指定的。注意我需要能够指定要在运行时映射的 bean 字段的名称。为什么?我希望映射的字段随 GET 方法的调用而变化。
根据我在 MapStruct 文档中阅读的内容,您可以指定哪些字段要映射或不映射带有注释。不幸的是,您不能在运行时更改注释值(通过反射也许可以,但感觉应该是更好的方法)。
鉴于我想做的事情,有谁知道我如何在运行时指定映射哪些字段?
或者有人知道实现 REST“字段”查询参数的更好方法吗?
我期待阅读回复。如果您有任何问题或需要澄清,请直接提问。
此致,
本.
这么一想,我觉得说不通。由于 MapStruct 在构建时生成映射器 类,因此无法在运行时更改映射过程。这样对吗?
我正在尝试使用 Mapstruct 实现 REST 查询参数“字段”。按照惯例,REST“字段”查询参数允许您在对实体执行 GET 请求时将其值指定为逗号分隔的实体字段列表。这与返回实体的所有字段相反,这是在省略“fields”查询参数时发生的情况。
示例:
获取locahost/blah/1 响应 {"a":"1", "b":"2", c:"3"}
GET local/blah/1?fields=a,c 响应 {"a":"1", "c":"3"}
所以我想让 Mapstruct 做的只是映射 bean 的字段,这些字段的名称是我指定的。注意我需要能够指定要在运行时映射的 bean 字段的名称。为什么?我希望映射的字段随 GET 方法的调用而变化。
根据我在 MapStruct 文档中阅读的内容,您可以指定哪些字段要映射或不映射带有注释。不幸的是,您不能在运行时更改注释值(通过反射也许可以,但感觉应该是更好的方法)。
鉴于我想做的事情,有谁知道我如何在运行时指定映射哪些字段?
或者有人知道实现 REST“字段”查询参数的更好方法吗?
我期待阅读回复。如果您有任何问题或需要澄清,请直接提问。
此致,
本.
这么一想,我觉得说不通。由于 MapStruct 在构建时生成映射器 类,因此无法在运行时更改映射过程。这样对吗?