Asp.net-Mvc

Swagger 不為 IActionResult 包裝的對像生成模型

  • February 2, 2022

使用以下程式碼,Swagger UI 顯示 RegistrationInfo 模型,但不顯示 UserInfo 模型。

我如何讓它生成?

[Produces("application/json")]
[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
[Route("api")]

public class UserController : Controller
{

   [HttpPost("RegisterUser")]
   public  IActionResult RegisterUser([FromBody] RegistrationInfo info)
   {
       UserInfo data =    UserData.RegisterUser(info);
       if (data != null)
       {
           return Ok(data);
       }
       return NoContent();
   }
}

您需要使用該ProducesResponseType屬性。將您的控制器更改為:

[Produces("application/json")]
[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
[Route("api")]
public class UserController : Controller
{
   [ProducesResponseType(typeof(UserInfo), StatusCodes.Status200OK)]
   [HttpPost("RegisterUser")]
   public IActionResult RegisterUser([FromBody] RegistrationInfo info)
   {
       UserInfo data = UserData.RegisterUser(info);
       if (data != null)
       {
           return Ok(data);
       }

       return NoContent();
   }
}

在這裡查看更多。

引用自:https://stackoverflow.com/questions/53105513