【问题标题】:How can I wrap the Sitecore 8 itemWebApi to apply custom business logic to API responses?如何包装 Sitecore 8 itemWebApi 以将自定义业务逻辑应用于 API 响应?
【发布时间】:2015-07-30 20:19:28
【问题描述】:

我需要构建一个服务端点,以向请求的移动应用客户端提供特定的 Sitecore 8.0 项目(包含内容树的给定分支中的给定字段值)。封装这个逻辑(可能还有其他一些计算等)意味着开箱即用的 API 不适合。

我想模仿由另一个 CMS 公开的现有 SOAP 服务,但是如果它具有更高的代码可重用性或升级安全性,我不会使用 RESTful itemWebApi 的修改版本。

根据我迄今为止的研究,看来我的选择是构建一个自定义处理程序、一个完全独立的 asmx 服务(ala this approach)或构建一个自定义控制器(类似于 this custom Web API controller method)。

覆盖或替换 itemWebApi 的默认管道处理器似乎不可行,因为如果可以避免的话,我不想替换/修改 OOB API。

对 Sitecore 8 有相同要求的人是否找到了更好的方法?

【问题讨论】:

  • Sitecore 7.5 及以后版本还提供实体和物品服务。如果您还没有,值得调查。迈克在mikerobbins.co.uk/2015/01/06/… 上有一个很好的帖子。
  • 这看起来是个不错的选择,谢谢。它允许您创建自己的业务实体,sitecore 项目对象可以映射到这些实体,这正是我想要做的。
  • 太棒了!很高兴我能帮上忙。它似乎没有记录,但非常有用。您能否将评论标记为有帮助?谢谢

标签: sitecore sitecore8


【解决方案1】:

我选择的方法是创建一个单独的服务“路由器”,使用适配器模式开发,供我们的移动应用客户端使用。路由器依次调用 Sitecore ItemWebApi。

这最符合我的需求,因为它与 Sitecore 应用程序完全分离,并且可以在必要时修改客户端,而不会影响端点。

【讨论】:

    【解决方案2】:

    在 Sitecore 8 中的 Sitecore.Services.Client 中的 EntityService 也值得一看。它是基于 Web API 的服务,但比标准的 Sitecore Item Web API 具有更大的灵活性,因为您可以自己定义模型和业务逻辑。

    我可以看到您提到了我的另一篇关于添加自定义 Web API 控制器的博客文章。实体服务不同,它是 Sitecore 的一个框架,用于实现为 Sitecore 创建自定义 Web 服务的标准方式。

    我写了一篇关于 EntityService 的博文。它也有一个 Javascript 和基于标准 rest 的 API 来与服务进行通信。

    http://mikerobbins.co.uk/2015/01/06/entityservice-sitecore-service-client/

    此处的示例应用程序:https://github.com/sobek1985/EntityServiceDemo

    还有一些关于实体服务高级功能的帖子:http://mikerobbins.co.uk/category/sitecore/sitecore-service-client/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-14
      • 1970-01-01
      • 2011-02-19
      • 1970-01-01
      • 2015-11-10
      • 1970-01-01
      • 1970-01-01
      • 2016-10-16
      相关资源
      最近更新 更多