2015-10-06 83 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

相关问题