私はいくつかの二重入力簿記が必要なアプリケーションで作業しています。現在、2つのエンドポイントREST APIの集計値
/account
/transaction
は/account
は、アカウントの一般的なデータを扱う一方で、/transaction
は預金/撤退のためのトランザクションを処理があります。口座残高は、関連する取引に基づいて計算されます。私は、1つの口座から別の口座に金額を振り替える際に、簿記の一貫性を得るためにそれらを分けていました。
私の質問は、/account
エンドポイントのアカウント残高をどのように表現するかです。これは、リクエスト時に常に計算されるためです。レスポンスは読み込み専用フィールドとして残高を含んでいなければなりませんか?これ以外のすべてのフィールドは書き込み可能/更新可能なので、これは悪いAPIデザインのような臭いをします。
は私の心に来るの代替はに関する口座の残高のみを返す
/account/{id}/balance
にエンドポイントを拡張することです。ただし、アカウントの残りのデータに加えて残高を得るためには、常に2回目の呼び出しが必要です。たぶん答えは、集計された値を表現する方法を一般化することができます。
通常、残りのエンドポイントにはアクションはありません。行動によって私は、 "calculatebalance"を意味します。リソース名の指定は、通常のREST規則です。 –