2013-12-19 11 views
7

Ich habe ein Problem mit meiner ServiceStack w/Swagger-Implementierung hinsichtlich der Dokumentation der erforderlichen/optionalen Eigenschaften. Entwickler, die Clients implementieren, die meine Dienste nutzen, lieben die Swagger-Dokumentation. Sie wissen jedoch nicht, welche Eigenschaften benötigt werden, vs. optional - abgesehen von 400 Antworten bei jedem Versuch, eine gültige Anfrage zu erhalten.Wie können die erforderlichen/optionalen DTO-Eigenschaften in ServiceStack am besten vermittelt werden?

Nehmen Sie das folgende Beispiel:

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; } 
} 

Swagger werden sauber diese beiden Arten zeigen, wenn sie Teil meines DTO sind, aber ich kann nicht vermitteln, dass Vorname, Nachname, oder eine der Eigenschaften Adresse ist benötigt oder nicht. Gibt es eine Möglichkeit, dies zu erreichen, ohne ein separates Spec-Dokument einzurollen?

Antwort

3

Sie können ein [ApiMember(IsRequired = false)]-Attribut für die Eigenschaften im DTO verwenden, um zusätzliche Informationen für swagger ui hinzuzufügen.

Es gibt Liste der Attribute, die Prahlerei ui auf dem servicestack wiki

+0

erkennen Ihre Antwort richtig ist, aber bis zu einem Punkt. Das ApiMember-Attribut funktioniert hervorragend, solange Ihre Eigenschaften einfache Typen sind. Sobald Sie beginnen, komplexe Typen (z. B. UserAddress) zu integrieren, gibt es keine Möglichkeit, anzuzeigen, welche Eigenschaften innerhalb des komplexen Typs erforderlich sind. –

Verwandte Themen