【问题标题】:Swashbuckle custom schema for each method每种方法的 Swashbuckle 自定义架构
【发布时间】:2021-10-05 21:13:40
【问题描述】:

我有 API 方法需要这样的类对象:

public class MyObject
{
    public int ID { get; set; }
    public string Name { get; set; }
}

现在我有两个 API 调用 > InsertUpdate

Insert 方法只需要来自该对象的Name,但Update 也需要ID

我想要实现的是以某种方式隐藏 ID 从在函数 Insert 的函数内大摇大摆的函数下显示的架构中,但在 ID 下显示它。

我正在谈论的架构是内部图片:

我可以通过添加[JsonIgnore] 来隐藏ID,但这并不能解决我的问题,因为我想在Update 中显示该字段

【问题讨论】:

    标签: c# asp.net api swashbuckle


    【解决方案1】:

    根据最佳实践 (separation of concerns),我将封装您的数据库逻辑并将您的模型公开为 2 个单独的 DTO,用于插入和更新操作。

    类似:

    MyObjectCreateDto.cs

    public class MyObjectCreateDto
    {
        public string Name { get; set; }
    }
    

    MyObjectUpdateDto.cs

    public class MyObjectUpdateDto
    {
        public int ID { get; set; }
        public string Name { get; set; }
    }
    

    然后,您可以将上述模型用于您的端点,Swagger 将采用这些模型。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-01
      • 2016-06-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多