該賞金到期in 4天。此問題的答案有資格獲得 50聲望賞金。 variable正在從有信譽的來源尋找答案。
我有一個 DTO,它是 API POST 端點的輸入引數。
DTO 有資料注釋并且自動進行驗證。下面是一個例子:
{
"type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
"title": "One or more validation errors occurred.",
"status": 400,
"traceId": "00-f14406a8950b1005234cc79298a79586-77222ebbed97e453-00",
"errors": {
"Email": [
"The Email field is not a valid e-mail address."
]
}
}
但是,當我想從控制器引發 400 回應時,請使用以下任一方法:
return BadRequest("some message")
這回傳 some message
其中:return BadRequest(new { message = "some message"});回傳:
{
"message": "some message"
}
如何確保始終使用相同的格式?是否有任何內置的標準化方法。
uj5u.com熱心網友回復:
創建一個基本 api 控制器,如下所示:
[ApiController]
public abstract class ApiControllerBase : ControllerBase
{
protected virtual IActionResult InvalidModelState() {
return HttpContext.RequestServices.GetService<IOptions<ApiBehaviorOptions>>()
.Value.InvalidModelStateResponseFactory(ControllerContext);
}
}
并從ApiControllerBase. 每當您想添加錯誤并使用相同格式的驗證錯誤時,只需添加一個ModelState.AddModelError("", "Your error message")then return InvalidModelState();。
uj5u.com熱心網友回復:
根據檔案 - https://docs.microsoft.com/en-us/aspnet/core/web-api/?view=aspnetcore-6.0#default-badrequest-response
ValidationProblemDetails 型別:
提供一種機器可讀的格式,用于指定 Web API 回應中的錯誤。
符合 RFC 7807 規范。
要使自動回應和自定義回應保持一致,請呼叫 ValidationProblem 方法而不是 BadRequest。
ValidationProblem 回傳一個 ValidationProblemDetails 物件以及自動回應。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/406533.html
標籤:
