将许多REST结果合并为一个

时间:2017-11-21 07:32:21

标签: java rest

我有REST方法接收List<String> itemId

在这个方法中,我为itemId列表中的每个ID调用SOAP方法。

我需要获取例如10个ID向另一个服务发出10个请求并合并数据并在我的服务中返回这些数据。

我的方法收到[1,2,3,4]

List<Response> res1 = getItemsFromSOAPService(1)
   List<Response> res2 = getItemsFromSOAPService(2)
   List<Response> res3 = getItemsFromSOAPService(3)
   List<Response> res4 = getItemsFromSOAPService(4)

我需要返回res1.getItemsList() + res2.getItemsList() + res3.getItemsList() + res4.getItemsList()

但是getItemsFromSOAPService可以返回Error。响应:

@Data
public class Response {
  private String status;
  private String message;
  private List<Item> itemsList;
}

如果我得到res2错误,我该如何组合数据?

1 个答案:

答案 0 :(得分:0)

修改getItemsFromSOAPService()以在检测到错误时抛出异常。然后使用try / catch。

try {
    List<Response> res1 = getItemsFromSOAPService(1);
    List<Response> res2 = getItemsFromSOAPService(2);
    List<Response> res3 = getItemsFromSOAPService(3);
    List<Response> res4 = getItemsFromSOAPService(4);

    // do something with the results
} catch ( SoapErrorException theException } {
    // do something with the error
}