ASP.NET Web APIを介してサーバー上の新しいコンテンツをチェックし、ローカルに保存するデスクトップクライアントがあります。電子メールクライアントのようなもの。
しかし、これを実装するための最良の方法が正確にはわかりません。つまり、新しいコンテンツがあるかどうかを確認するためのコントローラーが必要であり、クライアントはそれをダウンロードするために別のコントローラーを呼び出します。
手がかりはありがたいです。
ASP.NET Web APIを介してサーバー上の新しいコンテンツをチェックし、ローカルに保存するデスクトップクライアントがあります。電子メールクライアントのようなもの。
しかし、これを実装するための最良の方法が正確にはわかりません。つまり、新しいコンテンツがあるかどうかを確認するためのコントローラーが必要であり、クライアントはそれをダウンロードするために別のコントローラーを呼び出します。
手がかりはありがたいです。
残りのアプローチについては、ここで説明します。WebApiコントローラーからhttpステータスコードを返すには、最後に更新された時刻をコントローラーメソッドに取り込む必要があります。これを使用して、変更がその日付以降に行われたかどうかを確認し、変更されていない場合は、 304のHTTPステータスコードは変更されておらず、応答を省略します。ただし、変更された場合は、通常どおり200OKでリソースを送信します。
個人的には、httpヘッダーとetagを介して最後に更新されたものを管理することにより、上記のアプローチを少し変更します。詳細については、こちらをお読みください。
ほとんどの人はポーリングアプローチを使用します。このアプローチでは、システムが最後に更新をチェックしたときにアプリが日付または識別子を渡し、新しい更新をデスクトップクライアントにストリーミングします。必要なのは、特定の時点での更新についてデータベースをチェックするメソッドを呼び出し、新しいものをストリーミングしてから、新しいものを結果セットに追加する(または結果全体を更新する)ことです。
public class UpdatesController : ApiController
{
public object Get(long millisecondsAsOf)
{
//Query from DB, return results, or return true/false if there are new records.
}
}