Итак, у меня есть два 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;
}
Этот метод вернет правильный формат запроса, чтобы он мог отправить его в API B.
Тогда у меня будет способ принять ответ от API B таким образом, чтобы API A мог понимать и использовать данные. Такой метод:
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 для каждого типа запросов / ответов?