簡體   English   中英

使用 .net 核心 json 模型綁定在無效 json 上引發 json 驗證錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM