ServiceStack:真的是“简约优雅的设计”吗?

时间:2013-06-04 15:38:59

标签: asp.net json web-services rest servicestack

大家好!

我最近尝试使用ServiceStack框架并遇到了以下不公正的问题。

我或我不能对该库执行以下操作:

public class userService : Service
{
    public object Get(int? userId)
    {
        // instead of receiving user request object (empty or filled only with its id property)
        return new userResponse();
    }
}

对于我来说,对于整个DTO /请求/响应类逻辑,另一件事情是奇怪的,即,我应该定义三个类,它们以相似的名称开头(例如“user”),此外,处理DTO的服务是通过参数(!)找到(Get(用户请求))。我对吗?或者这只是因为我不完全理解ServiceStack的逻辑?如果是这样,那就太不方便了。在DTO(!)上定义服务端点(服务操作)但最初不是服务类时,这看起来很奇怪。 是否有可能以任何方式做这样的事情?:

[Route("/users")]
public class userService : Service
{
    public object Get()
    {
        return new ResponseBase(new List<Users>());
    }
    public object Get(int id)
    {
        return new ResponseBase(new User());
    }
}

这看起来主要是一个ASP.NET Web API。然而,出现了一个问题。为什么选择ServiceStack?是因为它是早些时候创建的吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

您尝试使用ServiceStack作为控制器,而不是像设计支持的DTO-first message-based服务一样。如果您想使用RPC方法签名来创建服务,我建议您回到使用支持此开发模型的WCF,MVC或WebApi。

如果您仍想使用ServiceStack,我建议您花点时间阅读Getting Started documentation,而不是猜测它是如何工作的。

主页上的Simple REST Service显示了如何创建一个简单的服务,就像您要创建的服务一样。有关如何设计服务的进一步阅读,请参阅: