gpt4 book ai didi

c# - 在 Swagger UI 中指示复杂输入参数对象的必需属性

转载 作者:行者123 更新时间:2023-11-30 14:24:24 25 4
gpt4 key购买 nike

在这个方法中

/// <summary>
/// Gets activity logs.
/// </summary>
/// <param name="locationId">Location id.</param>
/// <param name="filter">Activity log filter options.</param>
/// <response code="200">OK</response>
[ResponseType(typeof(ActivityLogResponse))]
public async Task<HttpResponseMessage> FetchActivityLogs(int locationId, ActivityLogFilterOptions filter)
{
}

ActivityLogFilterOptions 有一些必需的属性,一些是可选的。有没有什么方法可以在 Swagger UI API 参数中表明这一点?

ActivityLogFilterOptions 类:

/// <summary>
/// Represents an activity log filter options.
/// </summary>
public class ActivityLogFilterOptions
{
/// <summary>
/// Gets or sets the device ids to which the activity logs to be fetched.
/// </summary>
public string DeviceIds { get; set; }

/// <summary>
/// Gets or sets the start date for of the search.
/// </summary>
[DateTimeCompare("ToDate",
ValueComparison.IsLessThan, ErrorMessage = "From date must be earlier than end date.")]
public DateTime? FromDate { get; set; }

/// <summary>
/// Gets or sets the end date for the search.
/// </summary>
[DateTimeCompare("FromDate",
ValueComparison.IsGreaterThan, ErrorMessage = "To date must be later than from date.")]
public DateTime? ToDate { get; set; }

/// <summary>
/// Gets or set the page index.
/// </summary>
[Required]
[Range(0, int.MaxValue)]
public int? PageIndex { get; set; }

/// <summary>
/// Gets or sets the maximum record count per page.
/// </summary>
[Required]
[Range(1, short.MaxValue)]
public int? RecordsPerPage { get; set; }

/// <summary>
/// Gets or sets the activity log groups.
/// </summary>
public string Groups { get; set; }
}

enter image description here

最佳答案

是的,如果您使用 RequiredAttribute 修饰 API 模型的属性那么该属性将不会在 Swagger UI 中显示为“可选”:

[Required]
[JsonProperty(PropertyName = "your_property")]
public string YourProperty {get; set;}

对于复杂的对象,您可以通过单击“参数”部分的“数据类型”列中的“模型”而不是“示例值”来查看模型属性的可选性。

关于c# - 在 Swagger UI 中指示复杂输入参数对象的必需属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41282520/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com