2014-09-26 34 views
2

我們正試圖從Swagger轉換爲使用SSV4的本機元數據功能。但是在這樣做的時候,api代就有問題了:ServiceStack V4 API文檔缺少響應類型(在列表中)

這個問題似乎出現在內部SS操作BaseMetadataHandler .GetMetadataTypesForOperation(...)中,它似乎沒有檢測到List中的複雜類型並將它們與操作相關聯)。例如,該請求/響應DTO不會顯示「的ComplexType」文檔:

[Route("/example", "GET")] 
    [DataContract] 
    public class Example : IReturn<Example Response> 
    { 
     [ApiMember(IsRequired = true)] 
     [DataMember(Order = 1, IsRequired = true)] 
     public Guid ExampleGuid { get; set; } 
    } 

    [DataContract] 
    public class ExampleResponse : IHasResponseStatus 
    { 
     [DataMember(Order = 1, IsRequired = false)] 
     public List<ComplexType> Results{ get; set; } 

     [DataMember(Order = 2, IsRequired = false)] 
     public ResponseStatus ResponseStatus { get; set; } 

    } 

如果「的ComplexType」是單數(不是在列表),該類型在元數據頁正確記錄。我是否錯誤地配置這些DTO?或者可能是元數據引擎?

在此先感謝...約旦

回答

0

我已經擴大了ServiceStack的元數據頁面,包括通用和數組集合in this commit引用類型。

此更改可從ServiceStack v4.0.32 +即現在的available on MyGet

+0

對我們的實施進行了測試,並按預期工作。非常感謝...讓我的一天! – jglassco 2014-09-28 02:07:31

+0

嗨@mythz - 如果可能的話,我想重新打開這個問題......就像在通用數組的第一層工作正常之前所證實的那樣......但是如果存在多層數組,則元數據頁面不會顯示該課程的信息。 在我上面的例子中,考慮類型「ComplexType」包含一個成員,其中有「ComplexType2」的另一個通用列表。在這種情況下,ComplexType2將不會顯示在元數據頁面中。 你做的檢查幾乎需要遞歸或類似的花式嗎?再次感謝 – jglassco 2014-12-05 21:43:24

+0

@jglassco請在https://github.com/ServiceStack/Issues上打開一個新的問題,幷包含repro的問題模型。 – mythz 2014-12-05 21:50:28