У меня возникла проблема с моей реализацией ServiceStack w/Swagger относительно документирования необходимых/необязательных свойств. Разработчики, реализующие клиентов, которые потребляют мои услуги, любят документацию Swagger, однако они не знают, какие свойства необходимы или нет - кроме того, что при каждой попытке получить действительный запрос через 400 ответов.Каков наилучший способ передачи необходимых/необязательных свойств DTO в ServiceStack?
Рассмотрим следующий пример:
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, однако я не могу передать, что FirstName, LastName, или какой-либо из свойств адресов являются требуется или нет. Есть ли способ сделать это, не сворачивая отдельный спецификационный документ?
Ваш ответ является правильным, но в точку. Атрибут ApiMember работает отлично, пока ваши свойства являются простыми типами. Когда вы начинаете включать сложные типы (например, UserAddress), я не вижу способа указать, какие свойства в сложном типе необходимы. –