我有一个简单的模型,它的属性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 模式中将其显示为可设置的属性。
如何从 Swagger/OpenAPI 架构中删除属性Agg2Id_Agg2Reference而不显示在 Swagger UI 中?