ASP.NET Web API (ASP.NET MVC 4 に含まれています) を使用して RESTful API を実装しました。
クライアントがサポートされていない Content-Type (「text/plain」など) でサービスを要求すると、次の例外が発生します。
System.InvalidOperationException: メディア タイプ 'text/plain' のコンテンツからタイプ [...] のオブジェクトを読み取るために使用できる MediaTypeFormatter がありません。
私のサービスは HTTP ステータス コード 500 を返し、エラーがログに記録/報告されます (私は ELMAH を使用しています)。
残念ながら、この種のサポートされていないクライアント リクエストを「キャッチ」する簡単な方法が見つかりません。IMHO、サービスは 404 (見つかりません) または 400 (不正な要求) のようなステータス コードを返す必要があります。これは、エラーがサーバー エラーではない (クライアント側のエラー) ためです。
別の SO の質問で、この回答を見つけました。要求にサポートされていないコンテンツ タイプがある場合、ASP.NET Web API サービスによって返されるステータス コードを構成するにはどうすればよいですか? これは、カスタム DelegatingHandler を実装することによって可能な解決策を示しています。
だから私の質問は:私は何かが恋しいですか?この問題を対象とする ASP.NET Web API の組み込み機能はありますか?