ASP.NET 核心异步 API 端点 Return 除了实际有效负载数据之外的额外属性
ASP.NET Core Asynchronous API Endpoint Return Extra Properties beside Actual Payload Data
我正在使用 C# 在 ASP.NET Core 5.0 中开发后端 API。
我看到当我的 API 端点响应使用异步方法时 return 具有额外的属性,如“异常”、“状态”、“isCancelled”、“结果”等。preparty。在“结果”中 属性 预期响应数据 returned.
返回 JSON:
{
"result": [
{
"id": 1,
"username": "bette",
"age": 40
},
{
"id": 2,
"username": "cherry",
"age": 65
}
],
"id": 1,
"exception": null,
"status": 5,
"isCanceled": false,
"isCompleted": true,
"isCompletedSuccessfully": true,
"creationOptions": 0,
"asyncState": null,
"isFaulted": false
}
API 端点存储库代码:
public async Task<IEnumerable<MemberDto>> GetMembersAsync()
{
return await _context.Users
.ProjectTo<MemberDto>(_mapper.ConfigurationProvider)
.ToListAsync();
}
实际 API 控制器端点:
[HttpGet]
public async Task<ActionResult<IEnumerable<MemberDto>>> GetUsers()
{
var users = _userRepository.GetMembersAsync();
return Ok(users);
}
为什么要从 API 获得这些额外的属性?
您的控制器端点应该是:
[HttpGet]
public async Task<ActionResult<IEnumerable<MemberDto>>> GetUsers()
{
var users = await _userRepository.GetMembersAsync();
return Ok(users);
}
我正在使用 C# 在 ASP.NET Core 5.0 中开发后端 API。
我看到当我的 API 端点响应使用异步方法时 return 具有额外的属性,如“异常”、“状态”、“isCancelled”、“结果”等。preparty。在“结果”中 属性 预期响应数据 returned.
返回 JSON:
{
"result": [
{
"id": 1,
"username": "bette",
"age": 40
},
{
"id": 2,
"username": "cherry",
"age": 65
}
],
"id": 1,
"exception": null,
"status": 5,
"isCanceled": false,
"isCompleted": true,
"isCompletedSuccessfully": true,
"creationOptions": 0,
"asyncState": null,
"isFaulted": false
}
API 端点存储库代码:
public async Task<IEnumerable<MemberDto>> GetMembersAsync()
{
return await _context.Users
.ProjectTo<MemberDto>(_mapper.ConfigurationProvider)
.ToListAsync();
}
实际 API 控制器端点:
[HttpGet]
public async Task<ActionResult<IEnumerable<MemberDto>>> GetUsers()
{
var users = _userRepository.GetMembersAsync();
return Ok(users);
}
为什么要从 API 获得这些额外的属性?
您的控制器端点应该是:
[HttpGet]
public async Task<ActionResult<IEnumerable<MemberDto>>> GetUsers()
{
var users = await _userRepository.GetMembersAsync();
return Ok(users);
}