我的问题很简单,示例有两种方法。一个返回一个帐户,另一个返回一个客户对象。
对于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);
}
答案 0 :(得分:1)
您可以根据客户端要求定义API。
在这一点上,REST服务与服务没有什么不同。
如果可以将汇总结果返回给客户,为什么还要公开客户端必须调用的10个操作来收集结果?
此外,HTTP请求不是“免费的”。
请注意,必须对API进行整体测试,而REST服务是API。在您的情况下,您需要测试 10 方法,而不是 1 。
所有这些似乎都不正确。
因此,在您的情况下,是的,赞成将对象聚合到多个请求。
请注意,在某些情况下,仅当客户端可能只需要请求一个实体而不是对象图时,您才需要定义非常精细的操作。
情况并非如此,请保持简单。
答案 1 :(得分:0)
您可能要考虑客户与客户之间的对象关系。通常,客户会将零汇总到许多帐户,然后通过“客户”对象检索帐户。
您的用例是什么?在没有相应客户数据的情况下检索帐户是否有意义?如果不是这样,则您不需要自定义对象持有人,因为客户可以很好地履行该角色。
当然,您的商务案例可能有所不同...