ServiceStack - 是否有最新的完整文档?

时间:2012-09-27 00:41:31

标签: servicestack

我正试图围绕ServiceStack,虽然它声称它有非常好的文档,但到目前为止似乎并非如此。是否有文档实际上说明了要使用哪些接口/基类,以及它们做了​​什么?

只是..有一堆问题,并且可以找到很少的答案..一个new API design显示了一个DTO实现IReturn接口的例子,以及从服务继承的服务 - 但是没有解释这是否是首选现在,它是否需要实现IReturn,如何处理POST / GET /等等等。

任何链接都将受到赞赏。

是的,我有样品,但是例如他们在这个IReturn界面上没有任何东西..样品也不会打败文档。

1 个答案:

答案 0 :(得分:4)

您可以找到所有documentation for the ServiceStack Web Framework on the wiki

ServiceStack's new API只是released this week已经包含了所有问题的答案。我会返回并完整阅读,但我会提取回答您问题的片段:

是否有文档实际上说明了要使用哪些接口/基类,以及它们做了​​什么?

新API的介绍部分是:

新的API设计使用这个统一的界面简化了现有的IService和IRestService

public interface IService {}

现在能够在单个类中处理RPC服务和Rest服务请求。该接口仅用作标记接口,ServiceStack用于查找,注册和自动连接现有服务。还包括一个便利的具体服务类,其中包含对ServiceStack提供商的轻松访问

新的API设计显示了DTO实现IReturn接口的示例,以及从服务继承的服务 - 但如果这是现在的首选方式则无法解释

wiki顶部的标题为:

推荐用于未来的Web服务开发

由于新API设计提供了许多优于现有API的优势,我们建议将其用于任何新的Web服务开发。这将需要一些时间,但我们打算将所有旧示例移植到自己采用新API。 仍然更喜欢旧API的一个原因是,如果您还想支持仍需要前一种方法强制执行的严格要求的SOAP客户端和端点。

灵感标题下显示:

这个提案的优点在于它已经完全符合ServiceStack现有的基于消息的语义,这意味着我们能够在创纪录的时间内实现它,而不会中断或破坏对现有代码的更改 - 基础。结果是您现在可以开始在现有服务旁边创建新服务,并且可以继续无缝地并排工作

是否需要实施IReturn

标题从键入的C#客户端调用服务标题为:

假设你采取了复制DTO的正常路径(在二进制形式的任何一个源中),所以你在客户端上有这样的东西:

[Route("/reqstars")]
public class AllReqstars : IReturn<List<Reqstar>> { }

客户端上的代码现在变为:

var client = new JsonServiceClient(BaseUri);
List<Reqstar> response = client.Get(new AllReqstars());

向/ reqstars路由发出GET Web请求。当客户端上没有自定义路由时,它会自动回退到使用ServiceStack的预定义路由。

最后,您还可以使用之前更明确的客户端API(当您没有IReturn&lt;&gt;标记时非常理想):

var response = client.Get<List<Reqstar>>("/reqstars");

所有这些API都有异步等效项,您可以在需要时使用它们。

如何处理POST / GET / etc,

整个API文档实际上是关于解释Post的Get的工作方式。您在客户端上有一个client.Get()来调用服务器上的Get(),如果它不存在,则会回退到使用Any()

bottom of the Wiki页面介绍了如何将服务从较旧的API手动移植到较新的API。

以下是使用新API的一些示例: