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

Evg*_*eni 10 servicestack

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

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

任何链接将不胜感激.

是的,我有样品,但是例如他们在这个IReturn接口上没有任何东西..并且样品无论如何都不会打败文档.

myt*_*thz 4

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

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

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

在介绍新 API部分下有:

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

public interface IService {}
Run Code Online (Sandbox Code Playgroud)

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

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

维基顶部的标题如下:

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

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

“灵感”标题下写着:

该提案的优点在于它已经完全符合 ServiceStack 现有的基于消息的语义,这意味着我们能够在创纪录的时间内实现它,而不会对现有代码库造成任何干扰或破坏性更改。结果是,您现在可以开始在现有服务的同时创建新服务,并且它们将继续无缝地并行工作

是否需要实现IReturn

从类型化 C# 客户端调用服务标题下是:

假设您采用复制 DTO 的正常途径(以二进制形式的任一源),因此客户端上有类似以下内容:

[Route("/reqstars")]
public class AllReqstars : IReturn<List<Reqstar>> { }
Run Code Online (Sandbox Code Playgroud)

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

var client = new JsonServiceClient(BaseUri);
List<Reqstar> response = client.Get(new AllReqstars());
Run Code Online (Sandbox Code Playgroud)

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

最后,您还可以使用之前更明确的客户端 API(非常适合没有 IReturn<> 标记的情况):

var response = client.Get<List<Reqstar>>("/reqstars");
Run Code Online (Sandbox Code Playgroud)

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

如何处理POST/GET/等,

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

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

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