web-dev-qa-db-ja.com

デフォルトのASP.NET MVC Web APIメディアフォーマッターを変更する方法

一部の製品データを返すWeb APIプロジェクトがあります。リクエストのAcceptヘッダー(JSON/XML)に応じて、戻り値の型を正しくネゴシエートします。問題は、Acceptヘッダーが指定されていない場合、JSONを返しますが、デフォルトでXMLを返したいです。 Global.asaxのコンテンツネゴシエーションのデフォルトを変更するにはどうすればよいですか?

16
Edgar

http://www.strathweb.com/2013/06/supporting-only-json-in-asp-net-web-api-the-right-way/ で解決策を見つけた

これをWebApiConfig.Register()に追加しました:

config.Formatters.Clear();
config.Formatters.Add(new XmlMediaTypeFormatter());
config.Formatters.Add(new JsonMediaTypeFormatter());
config.Formatters.Add(new FormUrlEncodedMediaTypeFormatter());

したがって、デフォルトは最初のフォーマッタであるXMLですが、リクエストで要求された場合、APIはJSONをサポートします。

31
Edgar