ServiceStack服务设计
我正在创建一个新的服务堆栈应用程序,我想知道这是否可以用于服务堆栈; 我使用了消息设计模式,并且我有很多Requests Dtos(大约100个Request Dtos); 我的所有请求都从基本请求继承,并且每个请求Dto都有相应的响应Dto; 我想生成一个包含四个方法Get,Post,Put和Delete的通用Service; 这些方法中的每一个都将BaseRequest作为参数并返回BaseResponse作为返回值,并且每个具体的DtoRequest都确定其路由; 这适用于服务堆栈吗? 如果不是,是否有其他选择?
public class OrganizationService : ServiceStack.Service
{
public BaseResponse Post(BaseRequest request)
{
throw new NotImplementedException();
}
public BaseResponse Update(BaseRequest updateRequest)
{
throw new NotImplementedException();
}
public BaseResponse Delete(BaseRequest deleteRequest)
{
throw new NotImplementedException();
}
public BaseResponse Get(BaseRequest deleteRequest)
{
throw new NotImplementedException();
}
public BaseResponse Any(BaseRequest retrieveRequest)
{
throw new NotImplementedException();
}
}
[Route("/entities")]
public class RetrieveEntityRequest : BaseRequest, IReturn<RetrieveEntityResponse>
{
/// <summary>
/// A unique identifier for the entity.
/// </summary>
public Guid MetadataId { get; set; }
/// <summary>
/// Gets or sets the name of the entity to be retrieved.
/// </summary>
public String Name { get; set; }
/// <summary>
/// Gets or sets a filter to control how much data for the entity is retrieved.
/// </summary>
public EntityFilters EntityFilters { get; set; }
/// <summary>
/// Gets or sets whether to retrieve the metadata that has not been published yet.
/// </summary>
public Boolean RetrieveNotPublishedData { get; set; }
}
您不应该尝试创建查找继承基础对象的基础服务。 ServiceStack没有设计为在REST方法签名中查找继承。 您应该坚持特定的DTO以满足特定的要求。
有基本请求/响应对象并且有几种不同的方式来处理它们是很好的。 研究这些挂钩到服务中。 您可以使用请求/响应过滤器或服务运行器。 基本上在这些方法中,您可以将对象投射到BaseRequest并执行任何必要的工作。
链接地址: http://www.djcxy.com/p/65515.html