Типы ответов из веб-API 2 и как их обрабатывать в Angular 6 - PullRequest
0 голосов
/ 17 декабря 2018

Я немного сбит с толку, как я должен отправлять свои ответы из моего веб-API в Angular 6 SPA.Для начала я использовал BadRequestErrorMessageResult, как это

[HttpGet()]
public IHttpActionResult Error1()
{
    //... some error
    return BadRequest("Error1");
}

Но если бы мне пришлось вернуть 403, я бы пошел

[HttpGet()]
public IHttpActionResult Error2()
{
    //..Error occured..
    return ResponseMessage(Request.CreateResponse(HttpStatusCode.Forbidden, "Error2"));
}

Тогда я читал руководство по обработке ошибок https://angular.io/guide/http и попробовал что-то очень похожее на пример.

Я хотел показать сообщение пользователю.

handleError(err: HttpErrorResponse) {

 let errorMessage = '';
 if(err.error instanceof ErrorEvent) {
   errorMessage = err.error.message 
 } else {
   errorMessage = err.error;
 }
 return throwError(errorMessage);
}

Но я обнаружил, что эти различные методы возвращают типыне очень хорошо отображаются в Angular.

Если я использую BadRequest("Error1"), мое сообщение будет отображаться в

err.error.Message

Если я использовал

ResponseMessage(Request.CreateResponse(HttpStatusCode.Forbidden, "Error2")); это появилось бы в

err.error

Мне было интересно, можно ли было использовать оба типа ответа в моем бэкэнде и получить аналогичный ответ для обработки в SPA.

Полагаю, я всегда мог использовать версию ResponseMessage, чтобы знать, что ошибка будет понятна повсюду в SPA, но я не могу быть уверен, что кто-то еще в команде не будет использовать метод BadRequest.

...