10

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

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

任何链接将不胜感激。

是的,我有示例,但是例如,他们在此 IReturn 接口上没有任何内容.. 并且示例无论如何都不会击败文档。

4

1 回答 1

4

您可以在 wiki 上找到 ServiceStack Web 框架的所有文档

ServiceStack 的新 API本周刚刚发布,其中已经包含了您所有问题的答案。我会回去完整阅读它们,但我会提取回答您问题的片段:

是否有文档实际说明要使用哪些接口/基类,以及它们的作用?

介绍新 API部分下是:

新的 API 设计通过这个单一的统一接口简化了现有的 IService 和 IRestService :

public interface IService {}

现在可以在一个类中同时处理 RPC 服务和 Rest Service 请求。该接口仅用作 ServiceStack 用于查找、注册和自动连接现有服务的标记接口。还包括一个方便的具体服务类,其中包含对 ServiceStack 提供者的轻松访问

一个新的 API 设计展示了一个 DTO 实现 IReturn 接口的示例,以及从 Service 继承的服务 - 但没有解释这是否是现在的首选方式

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<> 标记时非常适合):

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

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

如何处理 POST/GET/等,

整个 API 文档有效地解释了 Post 的 Get 是如何工作的。您client.Get()在客户端上有一个调用服务器上的,或者如果它不存在则Get()回退到使用。Any()

Wiki 页面的底部介绍了如何手动将您的服务从旧 API 移植到新 API。

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

于 2012-09-27T01:13:01.583 回答