gpt4 book ai didi

spartacus-storefront - 在 Spartacus Storefront 中集成自定义 API

转载 作者:行者123 更新时间:2023-12-04 13:52:45 24 4
gpt4 key购买 nike

我们的 Hybris 实例有一些自定义的 REST API,例如 addEntry。这个版本的 API 需要在有效载荷中有一个额外的 bool 参数,我们称之为 fooBar。
下面是一个有效载荷的例子:{"quantity": 1, "product": {"code": "1234567"}, "fooBar": false}以下是我们为在实际进行 http 调用的服务中包含此额外参数所做的工作列表:

  • 覆盖了 AddToCartComponent
  • 修改 addToCart 方法,将fooBar 参数传递给 addEntry 方法 方法 方法Service 服务_0x104567106Service_Service1040710610000000

  • E2ActiveCartService 中的扩展 ActiveCartService
  • 修改 addEntry 方法将fooBar 参数传递给 方法 方法7920791920791920服务_0x1045267920服务_0x104526079107109107920个服务

  • 扩展 MultiCartService E2MultiCartService
  • 修改了 addEntry 方法将fooBar 参数传递给 E2CartAddEntry action _07x108 的payload

  • 实现了 CartAddEntry 操作的副本(称为 E2CartAddEntry ),具有自己的类型 (i.0x104567919 CartAddEntry E2CartAddEntry ) 具有自己的类型 (i.0x104567920)_104567920 _1067920-Ery2art
  • 实现了一个新的 CartEntryEffects (称为 E2CartEntryEffects ),它监听了 E4 _06709104 _06709101067107920 条 Action 。
  • 创建了第二个效应称为 processesIncrement $ 调度该 CartActions.CartProcessesIncrement 行动(我们这样做,因为 E2CartAddEntry 不能扩展 EntityProcessesIncrementAction 类)
  • 复制了原 CartEntryEffects的的addEntry $ 效果添加foobar的参数来添加方法 E2CartEntryConnector

  • 扩展 CartEntryConnector E2CartEntryConnector
  • 修改 add 方法,将fooBar 参数传递给 add 方法_0x104567910104045679Entry104 _0x1045679104 Adapter 的 Adapter _0x10456791010404040455679104Adapter

  • 扩展 CartEntryAdapter E2CartEntryAdapter
  • 修改抽象 添加 方法添加 fooBar 参数

  • 创建了 E2OccCartEntryAdapter 扩展了 OccCartEntryAdapter 并实现了 E2OccCartEntryAdapter
  • 修改 添加 方法,将 fooBar 添加到从 HttpClient _0x184567 进行的 POST 调用的负载中

  • 最后,在我们的主模块中,我们更改了提供程序:
  • [
    { provide: ActiveCartService, useClass: E2ActiveCartService },
    { provide: MultiCartService, useClass: E2MultiCartService },
    E2CartEntryEffects,
    { provide: CartEntryConnector, useClass: E2CartEntryConnector },
    { provide: E2CartEntryAdapter, useClass: E2OccCartEntryAdapter },
    ]
    此解决方案似乎有效,但我们认为对于相对简单的更改而言,这非常复杂,我们想知道我们的方法是否正确,或者是否有更好、更简洁的方法。
    亲切的问候

    最佳答案

    目前,对于这个特定用例来说,这似乎是正确的方法。
    您没有具体说明是什么 fooBar用于,但我认为,它已被使用并且可以在顶层(在 UI 组件中)内部切换,并且必须由所有其他层向下传递到适配器。
    另一方面,如果例如,fooBar将只是 Product 的属性模型,那么只需要扩展“产品”模型+重要的更改(组件、适配器),而所有其他地方都可以保持不变(只需通过扩展模型)。
    您能否提供更多有关所需更改的上下文,以便我们更好地理解它,并在将来使其更容易?
    在不久的将来,我们正在考虑通过 Spartacus 中的所有层来统一我们的外观服务的有效负载,因此向任何核心逻辑添加更多上下文将大大简化(基本上将归结为第二个示例,关于扩展 Product 模型)。

    关于spartacus-storefront - 在 Spartacus Storefront 中集成自定义 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67810796/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com