我刚刚看到ServiceStack,我正在考虑用它来构建服务.
是否可以使用服务堆栈提供OData提要,以便我能够公开IQueryable并从客户端查询它?
我正在创建一个MVC网站,并打算创建一个Web API,以便在网站内使用,也可能由第三方使用.
从MVC控制器,我将调用一个服务层,它将包含业务逻辑,作用于域模型,执行验证,进行基础设施外部服务调用等.服务层反过来将调用存储库以进行任何数据库交互.
现在,我喜欢ServiceStack的外观,并打算将它用于Web API - 它似乎比ASP.NET MVC 4 Web API更成熟.我的问题是,我应该在上面的服务层中调用ServiceStack API,类似于MVC控制器,还是应该将其作为服务层,为Web客户端和MVC控制器提供服务?
我们有一个使用ServiceStack连接的ASP.NET Web应用程序.我之前从未编写过功能测试,但我们的任务是针对我们的API编写测试(nUnit)并证明它一直工作到数据库级别.
有人可以帮我开始编写这些测试吗?
以下是post我们的用户服务的方法示例.
public object Post( UserRequest request )
{
var response = new UserResponse { User = _userService.Save( request ) };
return new HttpResult( response )
{
StatusCode = HttpStatusCode.Created,
Headers = { { HttpHeaders.Location, base.Request.AbsoluteUri.CombineWith( response.User.Id.ToString () ) } }
};
}
Run Code Online (Sandbox Code Playgroud)
现在我知道如何编写一个标准的单元测试,但我对此部分感到困惑.我是否必须通过HTTP调用WebAPI并初始化Post?我是否只是像单位测试那样调用方法?我想这是"功能测试"的一部分让我望而却步.
我是ServiceStack新手.我有一个使用CambiumORM 的相当大的.NET C#解决方案.
我正在将ServiceStackWebService项目添加到我的解决方案中.我按照指南.工作正常.
现在我想添加UserService:Service返回的UserDTO使用TranslateTo或PopulateWith写在这里.
[Route("/user")]
[Route("/user/{Id}")]
public class User
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
}
public class UserService : Service
{
private Users users = new Users();
public UserResponse Get(User request)
{
return new UserResponse { Result …Run Code Online (Sandbox Code Playgroud) 我关心的主要是ServiceStack的Redis客户端.我有一堆实体要存储在缓存中.他们的成员大多是封装的(私有的),其中一些没有任何公共访问者.ServiceStack的序列化程序是否允许我在Redis中存储(并显然获得)这些实体?或者我是否必须创建具有序列化公共属性的"干净"POCO类,这将迫使我保留任何实体的2个表示形式:真实的,以及用于将其存储在Redis中的"假"POCO表示形式?
我希望答案不是后者:)
我喜欢ASP.NET MVC控制器的功能,能够添加将URL的某个部分映射到方法参数的路由属性,即:
[Route("there/are/{howManyDucks}/swimming/in/the/{bodyOfWaterType}")]
public string NotifyDucksSwimming(int howManyDucks, string bodyOfWaterType)
{
...
}
Run Code Online (Sandbox Code Playgroud)
是否有一种与ServiceStack相同的方法,并为每种类型的请求跳过DTO类?