2015-10-30 63 views
6

我正在處理需要一些複式簿記的應用程序。目前有兩個端點REST API中的聚合值

/account 
/transaction 

雖然/account管帳的一般數據,/transaction處理存款/取款交易。賬戶餘額根據相關交易計算。在將價值從一個賬戶轉移到另一個賬戶時,我將它們分開以保持簿記的一致性。

我的問題是如何在/account端點上表示帳戶餘額,因爲它總是按請求時間計算。應答是否只將餘額作爲只讀字段?這聽起來像糟糕的API設計,因爲除了這個字段以外的所有字段都是可寫/可更新的。

來到我腦海中的替代將是終點延伸至

/account/{id}/balance 

只返回有關帳戶的平衡。但是,除了帳戶的其餘數據之外,這總是需要第二次電話才能獲得餘額。也許答案可以概括如何表示彙總值。

回答

0

非常好的問題。我經常遇到這樣的情況。我想說兩點:

  1. 你可能有其他的「只讀」領域,如「身份證」
  2. 你可能不想承擔它需要每一個你的時間來計算當前餘額的時間帳戶詳細資料。

我想我會選擇/ account/{id}/balance ...但是可能會將它命名爲/ account/{id}/calculatebalance以表明它需要一些時間來運行此方法。而且,顯然這個值是一個計算值。如果你有「幾個」計算值,那麼我會重新考慮我的意見。

2美分。

+0

您通常在其他端點沒有任何操作。我的意思是「計算平衡」。指定資源名稱是通常的REST約定。 –