有没有办法删除 url 的“/json/reply/”部分?

Is there a way to remove the "/json/reply/" section of the url?

我希望请求的 URL 为 /AmazingRequest(甚至 /AmazingService)而不是 /json/reply/AmazingRequest

我试过 Route 属性,但似乎没有效果。是否有可能在 ServiceStack 中,或者我必须求助于 URL 重写?

这是我试过的。它编译,但属性没有效果。

public class MyServiceEndpoints : IService
{
    [Route("/AmazingService")]
    public AmazingResponse Post(AmazingRequest request)
    {
        return new Amazing(request).GetResponse();
    }
}

我意识到我需要告诉 ServiceStack 这是一个 json 请求,但我可以添加 AcceptContent-Type headers 或者也许甚至 ?format=json 到查询字符串。

P.S。我正在使用 BSD 版本的 ServiceStack

在 ServiceStack 中,路由是在请求 DTO 上定义的,因为它是您服务合同的一部分,例如:

[Route("/AmazingService")]
public class AmazingRequest { ... }

您使用的 pre-defined Route 是因为 ServiceStack 认为没有为您的服务定义任何自定义路由,而只使用默认路由。

另一种声明路由的方法是在 AppHost 中使用 Fluent Registration API,例如:

public void Configure(Container container)
{
    Routes
      .Add<AmazingRequest>("/AmazingService");
}

但是在请求 DTO 上定义它们的好处是您的 .NET 服务客户端也可以访问它们并且能够使用您的自定义路由而不是回退到预定义的路由。