我正试图围绕ServiceStack,虽然它声称它有非常好的文档,但到目前为止似乎并非如此。是否有文档实际上说明了要使用哪些接口/基类,以及它们做了什么?
只是..有一堆问题,并且可以找到很少的答案..一个new API design显示了一个DTO实现IReturn接口的例子,以及从服务继承的服务 - 但是没有解释这是否是首选现在,它是否需要实现IReturn,如何处理POST / GET /等等等。
任何链接都将受到赞赏。
是的,我有样品,但是例如他们在这个IReturn界面上没有任何东西..样品也不会打败文档。
答案 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提供商的轻松访问
wiki顶部的标题为:
由于新API设计提供了许多优于现有API的优势,我们建议将其用于任何新的Web服务开发。这将需要一些时间,但我们打算将所有旧示例移植到自己采用新API。 仍然更喜欢旧API的一个原因是,如果您还想支持仍需要前一种方法强制执行的严格要求的SOAP客户端和端点。
在灵感标题下显示:
这个提案的优点在于它已经完全符合ServiceStack现有的基于消息的语义,这意味着我们能够在创纪录的时间内实现它,而不会中断或破坏对现有代码的更改 - 基础。结果是您现在可以开始在现有服务旁边创建新服务,并且可以继续无缝地并排工作。
标题从键入的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都有异步等效项,您可以在需要时使用它们。
整个API文档实际上是关于解释Post的Get的工作方式。您在客户端上有一个client.Get()
来调用服务器上的Get()
,如果它不存在,则会回退到使用Any()
。
bottom of the Wiki页面介绍了如何将服务从较旧的API手动移植到较新的API。
以下是使用新API的一些示例: