私は Web Api を使用しており、クライアントがn秒ごとにハートビート通知を送信しているシナリオがあります。PUT ではなく POST で送信されるハートビート オブジェクトがあります。これは、既存のハートビートを更新するのではなく、新しいハートビートを作成しているためです。
さらに、クライアントには、現在オンラインになっている他のすべてのクライアントと、個々のクライアントが持つ未読メッセージの数を取得する必要があるという要件があります。私には2つのオプションがあるようです:
- POST に続いて GET を実行します。これは、純粋な REST の観点からはよりクリーンに思えます。私は作成と検索を行っていますが、SOLID の原則は、それに応じてそれらを分割することを好むと思います。ただし、このアプローチは 2 回の往復を意味します。
- GET がそうでなければ行ったのと同じ情報を含むオブジェクトを POST に返させます。これにより、すべてが 1 つの要求に統合されますが、このアプローチは賢明ではないと考えられるのではないかと懸念しています。純粋な POST ではありません。
オプション #2 のスタブは次のようになります。
public HeartbeatEcho Post(Heartbeat heartbeat)
{
}
HeartbeatEcho は、他のオンライン クライアントのプロパティと未読メッセージの数を含むクラスです。
Web Api は確かにオプション #2 をサポートしていますが、何かを実行できるからといって、実行する必要があるとは限りません。オプション #2 は忌まわしいもの、時期尚早の最適化、またはプラグマティズムですか?