ASP.NET Web API でのエラー処理のベスト プラクティス
ASP.NET Web API では、エラーを返すための一般的なアプローチが 2 つあります。クライアント: HttpResponseException をすぐにスローするか、エラーを蓄積してすべてを送り返します。
HttpResponseExceptions のスロー
エラーが発生した場合、HttpResponseException をスローすることで、エラー メッセージと HTTP ステータス コードを指定できます。 API はすぐに処理を停止し、エラー応答を返します。このアプローチにより、迅速かつ明確なエラー処理が可能になります。
例:
public void Post(Customer customer) { if (string.IsNullOrEmpty(customer.Name)) { throw new HttpResponseException("Customer Name cannot be empty", HttpStatusCode.BadRequest) } if (customer.Accounts.Count == 0) { throw new HttpResponseException("Customer does not have any account", HttpStatusCode.BadRequest) } }
長所:
短所:
累積エラー
このアプローチでは、すべてのエラーをリストまたはコンテナーに蓄積し、単一の応答として送信します。これは、モデル検証やデータ検証など、単一の操作中に複数のエラーが発生する場合に役立ちます。
例:
public void Post(Customer customer) { List<string> errors = new List<string>(); if (string.IsNullOrEmpty(customer.Name)) { errors.Add("Customer Name cannot be empty"); } if (customer.Accounts.Count == 0) { errors.Add("Customer does not have any account"); } var responseMessage = new HttpResponseMessage<List<string>>(errors, HttpStatusCode.BadRequest); throw new HttpResponseException(responseMessage); }
長所:
短所:
推奨事項
ベスト プラクティスは、特定のシナリオによって異なります。検証エラーまたは入力エラーの場合は、即時に HttpResponseExceptions をスローすると、迅速かつ明確な応答が得られます。ただし、重大ではないサーバー エラーの場合は、エラーを蓄積してまとめて返す方が良い選択肢になる可能性があります。
以上がASP.NET Web API のエラーを最適に処理する方法: 例外をすぐにスローするか、それとも例外を蓄積するか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。