问题描述
希望构建一个API,以使客户端可以指定要从内部Domain对象投射到外部Domain资源的哪些字段
DB-> Foo实体-> Foo映射器-> Foo资源
客户端发送一个名为fieldsToProject
的请求参数
例如
fieldsToProject:[“ id”,“名称”,“描述”,“基本价格”,“单价”,“制造商”]
我写了一个非常粗糙的方法,但是它像这样
public FooResource toProjectedFooResource(Foo foo,List<String> fieldsToProject) {
FooResource resource = new FooResource();
if (fieldsToProject.contains("id")) {
resource.setId(foo.getId());
}
if (fieldsToProject.contains("name")) {
resource.setName(foo.getName());
}
if (fieldsToProject.contains("basePrice")) {
resource.setBasePrice(foo.getBasePrice());
}
if (fieldsToProject.contains("unitPrice")) {
resource.setUnitPrice(foo.getUnitPrice());
}
//etc.
return resource;
}
在没有所有if语句具有400行功能的情况下,是否有更整洁的方法?
如果客户端发送的字段的拼写或大小写不正确,则解决方案应该忽略它,而不抛出异常。
请注意,我将Spring Boot 2.3与Spring Hateoas + Rest一起使用
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)