2013-12-19 3 views
7

У меня возникла проблема с моей реализацией 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, или какой-либо из свойств адресов являются требуется или нет. Есть ли способ сделать это, не сворачивая отдельный спецификационный документ?

ответ

3

Вы можете использовать атрибут [ApiMember(IsRequired = false)] для свойств в DTO, чтобы добавить дополнительную информацию для swagger ui.

Существует список атрибутов, чванство щ будет распознают на servicestack wiki

+0

Ваш ответ является правильным, но в точку. Атрибут ApiMember работает отлично, пока ваши свойства являются простыми типами. Когда вы начинаете включать сложные типы (например, UserAddress), я не вижу способа указать, какие свойства в сложном типе необходимы. –

Смежные вопросы