Web API 2では、レスポンスのステータスで例外メッセージを直接返すことは可能ですか?私は、WCFサービスを(というにWeb Intelligence APIより)書いていた場合Web API 2サービス - ステータスで例外メッセージを返す方法
例えば、私は直接応答ステータスの一部として例外メッセージを返すようにthis tutorialに従うことができる:ここでは、
Webサービスは応答内のデータを返しません。また、エラーメッセージはStatus Descriptionで直接返されます。
これは、例外が発生したときの私のWeb APIサービスの動作を丁寧に説明していますが、これを行う方法を考えることができません。
多くの提案は、以下のようなコードを使用することを推奨しますが、エラーメッセージは、ステータスの一部ではなく、別の応答文字列で返されます。例えば
私はこのコードを使用した場合、:
public IHttpActionResult GetAllProducts()
{
try
{
// Let's get our service to throw an Exception
throw new Exception("Something went wrong");
return Ok(products);
}
catch (Exception ex)
{
return new System.Web.Http.Results.ResponseMessageResult(
Request.CreateErrorResponse((HttpStatusCode)500,
new HttpError("Something went wrong")));
}
}
を...それは一般的な500のメッセージを返し、例外はJSON文字列で返されます。
誰もがこれを行うには(IHttpActionResult
オブジェクトを返す)のWeb API機能を変更する方法を知っていますか?