繁体   English   中英

Model 未显示在 swagger UI .NET

[英]Model not displaying in swagger UI .NET

我编写的 model userQuery用户查询未显示在 Swagger UI 中。 我在我的 controller 文件中引用了它,所以我希望它会出现在 Swagger UI 中。 我使用 SwashBuckle。 我在这里想念什么?

具有端点的 controller 文件:

using Project.Models;

namespace Project.Controllers
{
    [HttpGet]
    [Authorize(Policy = "Read-Run")]
    [Route("byRoute/{element}")]        
    [Produces(typeof(EntityResult<EntityResponse>))]
    public async Task<IActionResult> ListEntities([FromQuery] userQuery entityMatch, string element)
    {
        return Ok((await _entityService.ListEntities(entityMatch, element)));
    }

}

Model class:

using System;

namespace Project.Models
{
    public class UserQuery
    {
        public int Id { get; set; }
        public DateTime? DateCreated { get; set; }
        public DateTime? DateUpdated { get; set; }        
    }
}

您似乎无法将复杂对象绑定到 Swashbuckle(或 OpenAPI)中的查询字符串参数: 检查此问题

您可以在 controller 中使用三个不同的参数:Id、DateCreated 和 DateUpdated,并为每个参数使用 [FromQuery] 属性。

您的端点将如下所示:

public async Task<IActionResult> ListEntities(
    [FromRoute] string element,
    [FromQuery] int id, 
    [FromQuery] DateTime? dateCreated,
    [FromQuery] DateTime? DateUpdated
)

或者您可以在请求正文中传递 object 并使用 [FromBody] 属性。 但通常,您不应该将正文用于 GET 请求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM