首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ServiceStack服务设计

ServiceStack服务设计
EN

Stack Overflow用户
提问于 2014-03-10 08:31:26
回答 1查看 136关注 0票数 1

我正在创建一个新的Service应用程序,我想知道这对Service是否可行;我使用了message模式,并且我有很多请求Dto (大约100个请求Dto);我的所有请求都是从BaseRequest继承而来的,并且每个请求Dto都有一个相应的响应Dto;我想生成一个通用服务,它包含四个方法Get、Post、Put和Delete;这些方法中的每一种方法都以BaseRequest作为参数并返回BaseResponse作为返回值,并且每个具体的DtoRequest都确定它的rout;这是否适用于Service;如果没有选择的话?

代码语言:javascript
复制
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; }

    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-11 19:43:20

不应尝试创建查找继承的基本对象的基本服务。ServiceStack不是为在REST方法签名中查找继承而设计的。对于特定的请求,您应该坚持特定的DTO。

有基本的请求/响应对象是可以的,并且有几种不同的方法来处理它们。看看这些钩入服务部门。您可以使用请求/响应筛选器或服务运行程序。基本上,在这些方法中,您可以将对象转换为您的BaseRequest并执行任何必要的工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22295313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档