如何记录模型和单独项目中的服务

时间:2015-10-06 12:43:20

标签: servicestack swagger

我希望向我的团队演示ServiceStack,作为演示的一部分,我想创建一些文档。 UseCases.SwaggerHelloWorld运行正常,但我的项目(有一个正常运行的服务)返回一个空的招摇页面。当我访问/资源时,它返回:

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

然后我将Hello *服务和模型复制到我的API项目中(与主机在同一个程序集中),这很有效。然后我将服务和模型移动到单独的项目中,文档再次消失。

所以我的问题是,当模型位于单独的DLL中时,如何记录API?使用servicestack解决方案模板创建解决方案时,项目结构与建议的相同。

1 个答案:

答案 0 :(得分: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中,这是推荐的{{3}这包含在每个Physical Project Structure