0

Odata と WebAPI を組み合わせて API を作成することを検討しています。私が検討していることの 1 つは、OData データ サービスを WebApi コントローラーと同じ URL にマッピングすることです。OData の機能とそのクエリ サポートを使用して、読み取り専用の情報を提供できます。次に、WebApi コントローラー メソッドを使用して更新を受け入れます。このようにして、システムに送信される更新をより細かく制御できます。これまでのところ、ルーティングでこれを実行しようとしました。

DataServiceHostFactory factory = new DataServiceHostFactory();
RouteTable.Routes.Add(new ServiceRoute("api/SDAApi", factory, typeof(ReadService)));

そのため、Odata データ サービスである ReadService にルートを追加しています。SDAApi は私のコントローラー名と一致します。私のコントローラーには、ReadService - SoftwareDownloadRequests から要求しているコレクションと一致する SoftwareDownloadRequestsPost メソッドがあります。

ブラウザで ~/Api/SDAApi/SoftwareDownloadRequests の URL を取得すると、予想されるアイテムのリストが表示されます。シンプルなフォーム投稿でURLに投稿すると、応答が返されます。「コンテンツ タイプ 'application/x-www-form-urlencoded' はサポートされていません。」このフォームの投稿は、別の URL で行ったときに機能したため、競合が原因であると想定しています。

私の質問に戻りますが、これは可能ですか?私のエラーを修正する方法についてのアイデアはありますか?

VS 2012 RC と .NET 4.5 を使用しています

4

1 に答える 1

0

私はあなたがこれをしたいと思う正当な理由を考えることができません。

ASP.NET Web APIは、RCでODataのいくつかの重要な機能($ filterなど)を公開します。明らかに、RTMにはないかもしれませんが、将来のリリースではより多くのサポートが提供される予定です。

于 2012-07-15T15:49:46.503 に答える