使用ModelMapper映射对象,如何映射到几个不同的对象

时间:2019-01-14 00:17:39

标签: java api-design modelmapper object-model

所以我有两个要通信的API。 API A将向API B发送请求并从API B接收响应。在API A向API B发送请求之前,它必须先映射该请求以使API B能够理解。像这样:

ModelMapper modelMapper = new ModelMapper();

public DestinationClass sendRequest(MyRequest myReq){
    DestinationClass destReq = modelMapper.map(myReq, DesinationClass.class);
    return destReq;
}

该方法将返回请求的正确格式,以便将其发送到APIB。

然后,我将以API A可以理解和使用数据的方式,接受API B的响应。这样的方法:

public MyResponse receiveResponse(DestinationClass destResp){
    MyResponse myResp = modelMapper.map(destResp, MyResponse.class);
    return resp;
}

问题是API B接受不同类型的请求(大约6或7种不同类型)。因此,进入API B的请求不一定总是采用相同的格式,有时它们具有不同的数据字段。因此,以上代码中的“ DestinationClass”将有所不同。 有办法解决吗?有没有一种方法可以将MyRequest和MyResponse映射到API B将要使用的任何格式?例如,是否有一种方法可以将“ DestinationClass”作为参数传递,以将这些方法用于不同类型的对象?特别是sendRequest方法。如果我有一个包含这些方法的Map类,是否可以传递“ DestinationClass”以用作返回类型? 还是我只需要为每种不同类型的请求/响应创建一个“ sendRequest”方法和一个“ receiveResponse”方法?

0 个答案:

没有答案