如何在 swagger codegen 中包含列表属性?

问题描述 投票:0回答:1

swagger 忽略 ComplexItems 属性。我需要为我的客户端应用程序生成 axios 模型。

public class DummyModel
{
    [Key]
    public Guid Id { get; set; }

    [Required]
    public string Name { get; set; }

    // This is your complex list
    public List<ComplexItem> ComplexItems { get; set; } = new List<ComplexItem>();
}

public class ComplexItem
{
    [Key]
    public Guid Id { get; set; }
    public int Property1 { get; set; }
    public string Property2 { get; set; }
    public DateTime Property3 { get; set; }
}

在 Api 上下文中我添加了关系。

modelBuilder.Entity<DummyModel>()
        .HasMany(dm => dm.ComplexItems)
        .WithOne()  // or WithMany() based on your needs
        .HasForeignKey("ForeignKeyColumnIfAny");  

在控制器中我添加了包括:

return await _context.DummyModels
               .Include(dm => dm.ComplexItems)
               .ToListAsync();

但是没有 list 属性的模型看起来像这样:

export interface DummyModel {
   /**
    * 
    * @type {string}
    * @memberof DummyModel
    */
   id?: string;
   /**
    * 
    * @type {string}
    * @memberof DummyModel
    */
   name: string;
}
asp.net-core asp.net-web-api swagger swagger-codegen
1个回答
0
投票

据我所知,swagger是根据WebAPI的控制器方法的类型生成示例的。

我建议你可以将控制器返回类型修改为

List<DummyModel>
,看看 swagger 是否会生成正确的结果。

更多详情,您可以参考以下控制器代码示例:

    [HttpPost("DummyModelTest")]
    public List<DummyModel> Post(DummyModel dummyModel)
    {

        List<DummyModel> list = new List<DummyModel> { dummyModel };
        return list;
    }

结果:

© www.soinside.com 2019 - 2024. All rights reserved.