获取cms组件时GET请求过大问题的解决方法

Workaround of the problem of too big GET request when getting cms components

用相当大的类别树更新我们的后端后,我们在一个请求中总共得到了大约 600 个组件,我们的 GET 基本上太大了。

我知道有相关问题: Request URI too long on spartacus services github 问题: https://github.com/SAP/spartacus/issues/6406 但我们不想使用 POST 而不是 GET 来获取 cms 组件。

实际上,到目前为止,我们正在尝试将大调用拆分到导航的可见部分和其余部分的方法。 Spartacus 将在用户操作(点击、点击)触发的后续调用中加载嵌套的子导航组件。这有额外的好处:一种大导航树的延迟加载。但是SSR期间问题依然存在。我们认为不需要更改后端。

我知道后端也有分页功能,但不确定如何在这里使用它(不会破坏大量用于获取 cms 组件的 Spartacus 逻辑)。

我们的另一个选择是从后端将整个菜单树作为 JSON 获取,但这也需要在前端和后端都采用自定义解决方案。

所以问题是:是否还有其他已解决该问题的案例?

我知道这是一个常见问题,有一天 Spartacus 团队可能会提供一个解决方案,但就目前而言,如果我们有可能的解决方案列表就更好了,这样任何人都可以在处理它自己的案例时从中受益通过主要问题(Spartacus 将对 cms 组件的多个请求组合到一个调用中,这在大多数情况下显然是好的 :))。

目前我不知道有任何现有的解决此问题的方法。最简单的可能解决方法是覆盖 OccCmsComponentAdapter 并在需要时(在幕后)或更高级别(CmsComponentConnector)将一个请求替换为两个请求。

否则。它是一个很好的新问题 Spartacus github repo 候选者,因为它不仅可以加快正确修复的速度,而且还可以测试一些解决方法。