servicestack 什么';在ServiceStack中传递所需/可选DTO属性的最佳方式是什么?,servicestack,swagger,servicestack,Swagger" /> servicestack 什么';在ServiceStack中传递所需/可选DTO属性的最佳方式是什么?,servicestack,swagger,servicestack,Swagger" />

servicestack 什么';在ServiceStack中传递所需/可选DTO属性的最佳方式是什么?

servicestack 什么';在ServiceStack中传递所需/可选DTO属性的最佳方式是什么?,servicestack,swagger,servicestack,Swagger,我的ServiceStack w/Swagger实现在记录必需/可选属性方面存在问题。实现使用我的服务的客户机的开发人员喜欢Swagger文档,但是他们不知道哪些属性是必需的,哪些是可选的——除了在每次尝试获取有效请求时得到400个响应之外 以以下为例: public class UserProfile { public string FirstName { get; set; } public string LastName { get; set; } public U

我的ServiceStack w/Swagger实现在记录必需/可选属性方面存在问题。实现使用我的服务的客户机的开发人员喜欢Swagger文档,但是他们不知道哪些属性是必需的,哪些是可选的——除了在每次尝试获取有效请求时得到400个响应之外

以以下为例:

public class UserProfile
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public UserAddress Address { get; set; }
}

public class UserAddress
{
    public string AddressLine1 { get; set; }
    public string AddressLine2 { get; set; }
    public string City { get; set; }
    public string State { get; set; }
    public string Zip { get; set; }
    public string Country { get; set; }
    public string PhoneNumber { get; set; }
}

如果这两种类型都是我的DTO的一部分,Swagger将清晰地显示这两种类型,但是我无法表示FirstName、LastName或任何Address属性是否是必需的。有没有一种方法可以在不必滚动单独的规范文档的情况下实现这一点?

您可以在DTO中的属性上使用
[ApiMember(IsRequired=false)]
属性来为swagger ui添加额外信息


上有一个属性列表,swagger ui可以识别您的答案是正确的,但在一定程度上是正确的。只要属性是简单类型,ApiMember属性就非常有效。一旦您开始合并复杂类型(例如UserAddress),我就看不到任何方法可以指示复杂类型中需要哪些属性。