最初に質問に答えます。はい、DataServiceVersion http ヘッダーを自分で公開できます。ただし、これはカスタム コードであり、既存のコンポーネントの設定ではありません。
グローバル http 構成に「フィルター」を追加します。フィルターは、"System.Web.Http.Filters.ActionFilterAttribute" から派生したクラスです。
例えば;
internal class DataServiceVersionHeaderFilterWebAPI : System.Web.Http.Filters.ActionFilterAttribute
{
public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
{
actionExecutedContext.Response.Content.Headers.Add("DataServiceVersion", "3.0");
actionExecutedContext.Response.Content.Headers.Add("Access-Control-Expose-Headers", "DataServiceVersion");
}
}
次に、このフィルターを使用するように構成します (global.asax のアプリケーション開始時)。
GlobalConfiguration.Configuration.Filters.Add( new DataServiceVersionHeaderFilterWebAPI() );
これにより、セキュリティの観点からクロス ドメイン OData クエリが可能になります。ただし、これには別の問題があります。
OData は、要求 URI と HTTP ヘッダーだけよりも大きな仕様です。また、モデル情報を交換する方法も指定します。実際のデータ交換は事前定義されたオブジェクト構造です。シンプルですが、定義済みの構造です。
object.d = サービスが返すコンテンツ
仕様のすべての部分 ($filter、$metadata、$top、戻り値の形式など) を自分で実装する必要があります。
考えるためのいくつかの食べ物。