开源项目 Spartacus 同 Commerce Cloud 交互的流程讲解
这是一张Spartacus同Commerce交互的示意图。我们首先看图的最右边。Spartacus同Commerce系统的通信,通过HTTP协议调用OCC API完成。Connector是HTTP调用的发起者,维护了静态的配置信息,即API的endpoint.
比如,从Commerce系统读取产品主数据,读取的字段列表以url参数的形式出现在API endpoint里。这些字段列表可以在Connector的静态配置点里进行配置。Connector并不会直接同Commerce交互,而是把请求转发给Adapter,具体通信由Adapter完成,Connector只负责调度Adapter. Spartacus发布的Adapter默认使用OCC Module,即Commerce标准的OCC Restful API,但是客户也可以实现自己的Adapter,连接Commerce之外的其他后台系统。
Connector将Adapter取回的数据交给NgRx的store结构统一管理,后者的复杂度被Façade层所隐藏,而Spartacus UI组件只会同Façade层交互,进行数据绑定和页面展示。这体现了关注点分离的设计原则。最后,因为UI组件和Commerce后台组件的数据模型存在差异,因此需要Converter,在数据从Commerce取回,准备呈现在UI之前,先要通过Converter转换成适合UI展示的结构;反之,在Spartacus提交数据准备写回Commerce时,也要先将数据通过Converter转换成OCC API接受的数据格式。
Connector 逻辑位于内存数据存储和后端 Commerce Cloud 服务器之间。 每个域都使用一个特定的 Connector 来解耦与后端系统的连接。 例如,产品连接器负责加载产品详细信息。
为了提供最佳的灵活性,连接到后端系统涉及三个实体:连接器(Connector)、适配器(Adapter)和转换器(Converter)。 但是请注意,当使用非 SAP Commerce Cloud 的其他第三方系统时,并非所有这三种实体都必须参与。
以上就是跨不同框架和技术堆栈的常见模式,尽管不同的上下文里可能会使用不同的名称(例如,Populator 或 Serializer器而不是 Converter)。
- 点赞
- 收藏
- 关注作者
评论(0)