2015-10-06 79 views
0

我期待向我的團隊演示ServiceStack,並且作爲演示的一部分,我想創建一些文檔。 UseCases.SwaggerHelloWorld運行良好,但我的項目(有1個功能服務)返回一個空的swagger頁面。當我訪問/資源返回:如何記錄在單獨項目中的模型和服務

{ 
    "swaggerVersion":"1.2", 
    "apis":[], 
    "apiVersion":"1.0", 
    "basePath":"http://localhost:29672", 
    "info":{"title":"Reports.Api"} 
} 

我再複製的Hello *服務和模式進入我的API項目(在同一程序的主機)和這個工作。然後,我將服務和模型轉移到單獨的項目中,並且文檔再次消失。

所以我的問題是,當模型在單獨的DLL中時,如何記錄API?項目結構與使用服務堆解決方案模板創建解決方案時推薦的相同。

回答

0

的APPHOST構造告訴ServiceStack該組件應該掃描定位,註冊和自動線的服務,如:

public class AppHost : AppHostBase 
{ 
    public AppHost() : base("Hello App", typeof(HelloService).Assembly) {} 
} 

它支持指定多個組件,如果你的服務是保持在不同的項目,如:

public class AppHost : AppHostBase 
{ 
    public AppHost() : base("Hello App", 
     typeof(HelloService).Assembly, typeof(OtherService).Assembly) {} 
} 

Modularizing Services docs有更多信息。

的DTO的使用的服務可以在不同的項目,你只需要指定組件的服務是,雖然它的建議的DTO的保持在一個separate dep-free project這是中都包含的每個ServiceStackVS VS.NET Project Template推薦Physical Project Structure

+0

感謝您的回覆。有用的東西,但我可能沒有說清楚。我已經註冊並自動連線上述服務,並且配置了AppHost來引用其他程序集。所有工作和元數據返回這些服務/路線等。這只是招搖即不起作用。/resources返回的JSON返回空。如果我將所有代碼移入主機項目,swagger都可以正常工作,如示例應用程序所示。那麼,當我們如何在不同的程序集和/或命名空間中找到服務/模型時,我該如何告訴大家? –

+0

...換句話說,我如何影響資源的建立方式,因爲它對我來說工作不正常。 –

+0

@NeilDobson我已經完成了你在SwaggerHelloWorld項目中所說的話[在這個提交中](https://github.com/ServiceStack/ServiceStack.UseCases/commit/de14dcf430f454f1dfdf556487b9886817d51a31)並將服務分成了[新項目](https ://github.com/ServiceStack/ServiceStack.UseCases/commit/f9e58cea0e52218847997a17dc7a39b5180176bd),無論我引用1還是兩個程序集,Swagger都能正常工作。您能否提交展示您遇到的問題的拉式請求? – mythz

相關問題