REST API中的聚合值



我正在开发一个需要复式记账的应用程序。目前有两个端点

/account
/transaction

/account处理账户的一般数据,/transaction处理存款/取款交易。账户余额是根据相关交易记录计算的。我把它们分开,以便在将价值从一个账户转移到另一个账户时保持记账的一致性。

我的问题是如何表示/account端点上的帐户余额,因为它总是在请求时计算的。响应是否应该只包含余额作为只读字段?这闻起来像是糟糕的API设计,因为除了这个字段之外的所有字段都是可写/可更新的。

我想到的另一种选择是将端点扩展到

/account/{id}/balance

仅返回有关帐户的余额。然而,除了账户的剩余数据外,这总是需要第二次调用来获取余额。也许答案可以概括为如何表示聚合值。

非常好的问题。我经常遇到这样的情况。我想说两件事:

  1. 您可能有其他"只读"字段,如"id"
  2. 您可能不想每次获得账户详细信息时都要花费计算当前余额所需的时间

我想我会选择/account/{id}/余额。。。但也许可以将其命名为/account/{id}/caculatebalance,以表明运行这些方法确实需要一些时间。很明显,这个值是一个计算值。如果你有"几个"计算值,那么我会重新思考我的观点。

2美分。

您通常不编写聚合属性,因此该属性是只读的是很自然的。这是一个信号,你开始有一个服务,而不是一个具有HTTP接口的数据库。如果您可以将每个请求缓存在某个位置,则无需重新计算,但这取决于您的需求。我知道这是一个很老的问题,idk。我点击它的方式。

相关内容

  • 没有找到相关文章

最新更新