【问题标题】:Swashbuckle/Swagger schema shows read only properties in schema on PUT operationSwashbuckle/Swagger 模式在 PUT 操作中显示模式中的只读属性
【发布时间】:2021-02-05 21:34:38
【问题描述】:

我有一个简单的模型,它具有 Agg2Id_Agg2Reference 属性,因为它只有一个公共 getter,但它仍然通过最新版本的 Swashbuckle 显示在 Swagger UI 中的模式 Post 操作中。

以下是模型类...

 public class UpdateRequest
{
    private string _firstProperty;
    private string _agg2_ServiceEndPoint;
    private AEA.GarthApp.Service2.Agg2.ViewModels.Agg2 _agg2Id_Agg2Reference;
    private AEA.GarthApp.Service2.Agg2.ViewModels.Agg2Id _agg2Id;
    private AEA.GarthApp.Service1.Agg1.ViewModels.Agg1Id _agg1Id;
    public void SetAgg2ServiceEndPoint(string value)
    {
        _agg2_ServiceEndPoint = value;
    }

    public void SetAgg2IdAgg2Reference(AEA.GarthApp.Service2.Agg2.ViewModels.Agg2 value)
    {
        _agg2Id_Agg2Reference = value;
    }

    [ProtoMember(1)]
    public string FirstProperty
    {
        get => _firstProperty;
        set => _firstProperty = value;
    }

    [ProtoMember(2)]
    public string Agg2_ServiceEndPoint
    {
        get => _agg2_ServiceEndPoint;
    }

    [ProtoMember(3)]
    public AEA.GarthApp.Service2.Agg2.ViewModels.Agg2 Agg2Id_Agg2Reference
    {
        get => _agg2Id_Agg2Reference;
    }

    [ProtoMember(4)]
    public AEA.GarthApp.Service2.Agg2.ViewModels.Agg2Id Agg2Id
    {
        get => _agg2Id;
        set => _agg2Id = value;
    }

    [ProtoMember(5)]
    public AEA.GarthApp.Service1.Agg1.ViewModels.Agg1Id Agg1Id
    {
        get => _agg1Id;
        set => _agg1Id = value;
    }
}

以下在 Swagger UI 中显示...

注意 1:我尝试使用和不使用 [ReadOnly(true)] 属性来装饰属性 Agg2Id_Agg2Reference,但我仍然看到此属性显示在 Swagger UI 中。

注意 2:字符串类型属性 Agg2_ServiceEndPoint 也只是一个 getter,但它不会显示在 UI 架构中(如预期的那样)。

注意 3:我不希望用 JsonIgnore 进行装饰,因为我实际上希望将这些数据放在客户端上,我只是不想在 Swagger UI 中将其显示为可设置的属性架构。

如何删除属性 Agg2Id_Agg2Reference 使其不显示在 Swagger/OpenAPI 架构中而不显示在 Swagger UI 中?

【问题讨论】:

    标签: swagger swagger-ui readonly-attribute


    【解决方案1】:

    上面的类是我的代码生成器产品的输出,我刚刚意识到这个特定的命令根本不需要 Agg2Id_Agg2Reference 属性,所以不再需要这个问题的答案......也就是说我会不介意了解为什么显示该属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-22
      • 2015-05-08
      • 2019-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-13
      • 2019-04-12
      相关资源
      最近更新 更多