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

上一篇: ServiceStack Service Design

下一篇: Accessing Session in the ServiceStack Razor View