SAP Spartacus 使用 customized API
发布日期:2021-06-30 14:49:04 浏览次数:2 分类:技术文章

本文共 2406 字,大约阅读时间需要 8 分钟。

https://stackoverflow.com/questions/67810796/integrating-customised-apis-in-spartacus-storefront

场景

客户对 addEntry 这个 SAP Hybris API 做了增强,payload 里增加了一个新的 boolean 类型的字段,名为 fooBar.

our Hybris instance has some custom REST APIs, for example the addEntry. This version of the API requires an extra boolean parameter in the payload, let’s call it fooBar. Here’s an example of payload:

Payload 的例子:

{
"quantity": 1, "product": {
"code": "1234567"}, "fooBar": false}

为了让这个定制化后的 API 在 Spartacus 里消费,需要完成下列步骤:

  1. Overridden the AddToCartComponent

标准的 active-cart.service.ts 里,addEntry 方法只有两个参数:

Modified the addToCart method passing the fooBar parameter to the addEntry method of the E2ActiveCartService

Extended ActiveCartService in E2ActiveCartService

Modified the addEntry method passing the fooBar parameter to the addEntry method of the E2MultiCartService

Extended MultiCartService in E2MultiCartService

Modified the addEntry method passing the fooBar parameter to the payload of the E2CartAddEntry action

  1. Implemented a copy of the CartAddEntry action (called E2CartAddEntry) with its own type (i.e. ‘[E2-Cart-entry] Add Entry’)

需要拷贝 CartAddEntry 成一个新的 action:

3.Implemented a new CartEntryEffects (called E2CartEntryEffects) that listens to the E2CartAddEntry action

Created a second effect called processesIncrement$ that dispatches the CartActions.CartProcessesIncrement action (we did this because the E2CartAddEntry cannot extends the EntityProcessesIncrementAction class)

Copied the addEntry$ effect from the original CartEntryEffects adding the fooBar parameter to the add method of the E2CartEntryConnector

  1. Extended CartEntryConnector in E2CartEntryConnector

Modified the add method passing the fooBar parameter to the add method of the E2CartEntryAdapter

  1. Extended CartEntryAdapter in E2CartEntryAdapter

Modified the abstract add method adding the fooBar parameter

  1. Created E2OccCartEntryAdapter that extends OccCartEntryAdapter and implements E2CartEntryAdapter

Modified the add method adding fooBar to the payload of the POST call made from HttpClient

  1. 使用新的 providers:
[    {
provide: ActiveCartService, useClass: E2ActiveCartService }, {
provide: MultiCartService, useClass: E2MultiCartService }, E2CartEntryEffects, {
provide: CartEntryConnector, useClass: E2CartEntryConnector }, {
provide: E2CartEntryAdapter, useClass: E2OccCartEntryAdapter },]

更多Jerry的原创文章,尽在:“汪子熙”:

转载地址:https://jerry.blog.csdn.net/article/details/117532081 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:SAP Spartacus 懒加载 Customized CMS Component 的问题
下一篇:SAP Spartacus RouterModule.forRoot() called twice 的错误消息

发表评论

最新留言

很好
[***.229.124.182]2024年04月25日 19时35分12秒