2

我有一个设置了许多路由的自托管应用程序。与其遍历每一个并将路由更改为现有路由的/api/<route>位置<route>,我想知道是否可以/api在启动应用程序时为每条路由添加前缀?我通过将其设置在 IIS 托管环境中知道它是可能的,web.config但我不确定它是否可能在自托管环境中?

4

2 回答 2

5

@EliGassert 的答案适用于 ServiceStack v4 自托管应用程序。这是在 ServiceStack v3 自托管应用程序中更改所有路由的基本路径的要求。

服务栈 v3:

在您的 AppHostConfigure方法中,您需要设置ServiceStackHanderFactoryPath为所需的前缀。

public override void Configure(Container container)
{
    SetConfig(new EndpointHostConfig {
        ServiceStackHandlerFactoryPath = "api"
    });
}

当你设置你的监听器时,你还必须附加前缀:

appHost.Start("http://*:9000/api/");

希望有帮助。

于 2014-05-14T11:07:14.333 回答
4

根据这篇 ServiceStack 文章,您只需要通过配置进行设置,如下所示:

public override void Configure(Container container)
{
    SetConfig(new HostConfig { HandlerFactoryPath = "api" });
}

将其与Mythz的这个答案结合起来,您就可以在以下位置获得一个自托管应用程序/api/

_apphost.Start("http://localhost:1337/api/");

注意:这似乎适用于自托管 API,但随后无法提供其剃须刀页面。所以这不太对。不过,暂时留下答案,直到找到完整的解决方案。

于 2014-05-12T14:47:07.050 回答