通过一种方法返回多个对象

时间:2019-01-04 09:15:04

标签: java

我的问题很简单,示例有两种方法。一个返回一个帐户,另一个返回一个客户对象。

对于WebApp页面,我还有大约10个其他不同的请求。

在WebApp上发出10个不同的请求或者只用我需要的所有内容创建1个请求是否正确?

如果是,执行此操作的正确方法是什么?我是否需要创建一个自定义对象来容纳页面中需要的所有其他对象,然后将其返回,还是有更好的方法?

正确的方法是什么?

@GetMapping("/customer")
public Customer getCustomer(@RequestParam String customerNumber) {
    return customer.getCustomer(customerNumber);
}

@GetMapping("/account")
public Account getAccountFromCustomer(@RequestParam String customerNumber, @RequestParam String accountNumber) {
    return account.getAccountFromCustomer(customerNumber, accountNumber);
}

2 个答案:

答案 0 :(得分:1)

您可以根据客户端要求定义API。
在这一点上,REST服务与服务没有什么不同。
如果可以将汇总结果返回给客户,为什么还要公开客户端必须调用的10个操作来收集结果? 此外,HTTP请求不是“免费的”。

请注意,必须对API进行整体测试,而REST服务是API。在您的情况下,您需要测试 10 方法,而不是 1

所有这些似乎都不正确。
因此,在您的情况下,是的,赞成将对象聚合到多个请求。

请注意,在某些情况下,仅当客户端可能只需要请求一个实体而不是对象图时,您才需要定义非常精细的操作。
情况并非如此,请保持简单。

答案 1 :(得分:0)

您可能要考虑客户与客户之间的对象关系。通常,客户会将零汇总到许多帐户,然后通过“客户”对象检索帐户。

您的用例是什么?在没有相应客户数据的情况下检索帐户是否有意义?如果不是这样,则您不需要自定义对象持有人,因为客户可以很好地履行该角色。

当然,您的商务案例可能有所不同...