我在这里陷入两难境地。
因此,我有这个 Rest API,它充当使用它的另一个 API 和来自外部提供商的 SOAP API 之间的简化代理。
其中,我有 4 个方法对应于 4 个 Soap 端点,它们将数据从 Rest 请求 DTO-s 映射到 Soap 请求 DTO-s。
4 个 Rest 请求 DTO 有一个 CommonDto,其中包含所有请求共有的一些对象。
此常见 REST 请求 DTO 的某些字段可以为空,如果是这种情况,我会进行空检查,以便我根本不会设置相应的 SOAP 请求字段,否则会使 SOAP 请求失败。
这4种方法基本上是这样的:
public RestResponseObject1 method1(RestRequestObject1 rRO1){
SoapRequestObject1 sRO1= new SoapRequestObject1();
Object commonField1= rR01.getCommonField1();//Object can be anything, BigDecimal, String, int,etc.
if(commonField1!=null){
sRO1.setCommonField1(commonField1);
}
BigDecimal commonField2= rR01.getCommonField2();
if(commonField2!=null){
sRO1.setCommonField2(commonField2.intValue());
}
//etc....
return Mapper.map(soapService.doSoapMethod1(sRO1);
}
此方法重复 4 次,使用不同的 RestRequestObjects、RestResponseObjects 和 SoapRequestObjects,但它们之间的公共字段类型不会改变。
我的问题是,如何抽象空检查,以便我不对每个方法重复它们,以便我的代码更干净?请注意,我无法选择对 Soap 请求对象执行任何操作,因为它们是通过 Swagger/OpenApi 自动生成的
守着星空守着你
杨__羊羊
相关分类