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);
}