Является ли метод .ReReestest () веб-API .NET эквивалентным Request.CreateErrorResponse (...) - PullRequest
0 голосов
/ 05 ноября 2019

В нашем веб-API в моей компании мы в настоящее время возвращаем наши 400 сообщений об ошибках с кодом:

return request.CreateErrorResponse(HttpStatusCode.BadRequest, someErrorMessage);

Однако в моих личных проектах с веб-API и в некоторых документах я виделнамного более чистый код для возврата различных кодов состояния, таких как:

return BadRequest(someErrorMessage);

В чем разница между этими двумя способами возврата ответа 400? Что является предпочтительным? Можем ли мы безопасно перейти от одного варианта к другому без какой-либо разницы в том, что увидит потребитель API? Мы используем Swagger, если это имеет значение.

1 Ответ

1 голос
/ 05 ноября 2019

Они просто отличаются от разных библиотек для создания ответных сообщений, и в сгенерированном ответе нет различий.

В коде, который я предлагаю, используются встроенные методы ApiController, такие как BadRequest (), InternalServerError () иOk ().

Но некоторые коды состояния http недоступны в методах ApiController , таких как «406 Not Acceptable», «426 Upgrade Required» и т. Д., Поэтому вы должны использовать другой способ, напримерМетод CreateErrorResponse () Или вы можете расширить ApiController и создать свои собственные методы для генерации ответов об ошибках, которые чаще используются в вашем приложении.

...