[英]Raise json validation error on invalid json using .net core json model binding
我有一些簡單的控制器,它們使用 .net 核心模型綁定來使用 json 輸入創建實體。
當發送無效的 json(json,由於拼寫錯誤或缺少轉義而無法正確解析)時,用戶將為 null,並且將拋出無用的錯誤。
我如何引發 json 驗證錯誤並返回信息,即 json 對 api 調用者格式不正確?
[HttpPost]
[ProducesResponseType(typeof(User), StatusCodes.Status200OK)]
[ProducesResponseType(typeof(HttpErrorResponse), StatusCodes.Status500InternalServerError)]
public async Task<IActionResult> Post([FromBody]User user)
{
return Ok(this.userService.CreateNewUser(user));
}
有兩件事可以做:
首先,如果它是一個 API,那么使用ApiController
屬性而不是Controller
屬性。 這將為您處理模型狀態/解析錯誤處理。
另一個選項是檢查ModelState.IsValid
。 例如
public async Task<IActionResult> Post([FromBody]User user)
{
if(!this.ModelState.IsValid)
return BadRequest(this.ModelState);
return Ok(this.userService.CreateNewUser(user));
}
第一個選項有我的偏好。 也因為它似乎在無效 json 的情況下會產生更好的錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.