2013-07-26 7 views
7

Mam problemy z wyświetlaniem prawidłowych notatek w usłudze przechwytującej przy użyciu usługi ServiceStack.Interfejs użytkownika Swagger wyświetlający dodatkowy parametr przy użyciu ServiceStack

Biorąc pod uwagę to struktura:

[Route("/Widget/{WidgetId}", Summary = "Updates a widget by id", Verbs = "POST", 
    Notes = "Updates a widget by id.")] 
    public class UpdateReqWidget : IReturnVoid 
    { 
     [ApiMember(Name = "WidgetId", Description = "The id of widget to delete.")] 
     public int WidgetId { get; set; } 
    } 

    public class WidgetService 
    { 
     public void Put(UpdateReqWidget req) 
     { 
      //do code here 
     } 
    } 

To produkujący Swagger UI Error

Spodziewam się lista parametrów tylko do widgetid, ale to wyświetlanie widgetid i UpdageReqWidget, nazwę klasy na życzenie. jakieś pomysły, co robię źle?

EDYCJA: Korzystam z wersji 3.9.55 dla ServiceStack i ServiceStack.API.Swagger. Zmieniłem szablony, aby lepiej odpowiadały naszym potrzebom.

+0

Które wersje ServiceStack i ServiceStack.Api.Swagger masz zainstalowane? Zachowanie, które opisujesz, brzmi jak ostatnia wersja, ale zrzut ekranu pokazuje starszą wersję elementów Swagger UI. –

+0

przy użyciu 3.9.55 na obu. Zmieniłem szablony określające zachowanie typu danych tak, aby w przypadku treści typu można było "kliknąć szczegóły", aby uzyskać strukturę danych. –

Odpowiedz

6

Istnieje recent addition to ServiceStack.Api.Swagger, aby automatycznie generować parametr treści żądania w interfejsie użytkownika Swagger. Myślę, że istnieje przypadek skrajny, w którym żądanie DTO nie ma właściwości, które nie są określone jako parametry ścieżki lub zapytania, tak jak w tym przypadku, kod nadal będzie generował ten parametr żądania, ale będzie to pusty obiekt w Wywyższać się.

+0

Dziękuję za odpowiedź. Zwykle w przypadku żądań aktualizacji prawdopodobnie nie przekazałbym tylko int, ani nie zwróciłem pustki. Dzieje się tak również w czasowniku DELETE (gdzie odkryłem problem), który nie jest koniecznym przypadkiem skrajnym ... usuwałbyś rekord na podstawie unikalnego identyfikatora. Czy jest to łatwe? –

+0

Masz rację, że tak by się stało z czasownikiem DELETE z aktualnym kodem ServiceStack. Wygląda na to, że mogą być pewne ulepszenia. –

+0

Krótko mówiąc, czy mówisz, że naprawdę nie mogę tego naprawić z pudełka? Jeśli to prawda, mogę spróbować wymyślić obejście. –