6

Web API OData V4 エンドポイントを稼働させようとしています。

最終的に(エンドポイントからすべての DateTime プロパティを削除した後)実行に移し、エンティティのリストが JSON になりました。

私は JSON が大好きですが、LinqPad を使用してエンドポイントをテストしています。フィードにあるエンティティのリストの JSON を理解できません。

これを XML に戻す方法を調べましたが、見つからないようです。そのため、ここで質問しています。

Web API OData v4 フィードのエンティティのリストを JSON ではなく XML にする方法はありますか?

4

2 に答える 2

14

別の回答を投稿して申し訳ありませんが、最初の回答が長すぎました。私はこのリンクを見つけました: V4 は常に Jsonを返します。確かに、最後の提案は機能します:

WebAPIConfig で、次への名前空間参照を追加します。

using System.Net.Http.Formatting;
using System.Web.OData.Formatter;

次に、次のようなものを追加します。

var formatters = ODataMediaTypeFormatters.Create();
config.Formatters.InsertRange(0, formatters);

エンティティのリストが xml として返されるようになりました。

欠点は、すべての応答がデフォルトであまり優先されない冗長な xml/atom になることです。

利点は、$formatリクエストが v4 で受け入れられるようになったことです。したがって、json に戻るには、(ヘッダーをいじることなく) URL を次のように発行できます: http://<myodataurl>?$format=application/json;odata.metadata=full(または最小限またはなし)

ただし、前述のように、LinqPad は依然として v4 スキーマを認識せず、このエンドポイントに正しく接続できません。

于 2014-08-12T16:14:29.537 に答える