2017-10-25 6 views
0

.net WEB APIを使用してREST APIを構築しています。予想されるエラーの処理とWeb APIの応答の作成

予想されるエラーに対して、最適な/推奨される対応は何ですか?

状況:場所がある飛行機があります。その場所は他の人が予約できます。予期したエラーによって予約が失敗した場合、私は何を作成する必要がありますか? は今、私はこれを使用します。

[Route("{number}/reservation"), HttpPost] 
public IHttpActionResult Reservation(string number) 
{   
    if (string.IsNullOrEmpty(number)) 
    return Content(HttpStatusCode.BadRequest, "Number required"); 

    var result = Reservation(number); 
    if (result.IsValid) 
    { 
    return Request.CreateResponse(HttpStatusCode.OK); 
    } 
    else 
    return Request.CreateResponse(HttpStatusCode.OK,result.ErrorMessage); 
} 
+0

https://stackoverflow.com/questions/10732644/best-practice-to-return-errors-in-asp-net-web-api –

答えて

0

方法あなたのAPIは罰金だから、あなたがエラー応答を生成しているが、ベストプラクティスはExceptionFiltersあなたが世界的に扱うことができますあなたのアプリケーションでを使用してもたらすの両方(&未処理の取扱)例外。

あなたは、単にこのように、アプリケーションでExceptionFilterを作成することができます -

public class MyExceptionFilterAttribute : ExceptionFilterAttribute 
    { 
     public override void OnException(HttpActionExecutedContext context) 
     { 
      if (context.Exception is NotImplementedException) 
      { 
       context.Response = new HttpResponseMessage(HttpStatusCode.NotImplemented); 
      } 
      // Other checks can be added 
     } 
    } 

をそして

WebApiConfig.csであなたのAPIであなたのフィルタを登録する

public static class WebApiConfig 
{ 
    public static void Register(HttpConfiguration config) 
    { 
     config.Filters.Add(new MyExceptionFilterAttribute()); 
    } 
} 

これにより、いつでも未処理のExceptionがAPIフィルタからスローされ、OnExceptionフィルタのメソッドを使用してレスポンスが生成されます。

関連する問題