乐趣区

关于前端:如何用-SAP-Commerce-Cloud-CMS-API-批量返回多个-CMS-Component-数据

应用 HTTP post:

URI: https://{{host}}/occ/v2/{{storefront}}/cms/components

负载的例子:

{
    "idList": ["{{componentId1}}",
        "{{componentId2}}",
        ...
    ]
}

要批量返回多个 CMS 组件数据,您能够应用 SAP Commerce Cloud 的 CMS API 中提供的以下办法:

应用 FlexibleSearch 查问 API

FlexibleSearch API 是一个灵便的查问 API,能够应用它来检索 CMS 组件的数据。您能够应用以下步骤来批量返回多个 CMS 组件数据:

构建 FlexibleSearch 查问,以检索您须要的 CMS 组件数据。

应用 FlexibleSearchService API 执行查问,以检索合乎查问条件的所有 CMS 组件数据。

遍历后果列表并获取每个组件的属性和值。
以下是示例代码:

String query = "SELECT {c.pk} FROM {CMSComponent AS c WHERE {c.catalogVersion} = ?catalogVersion}";
Map<String, Object> queryParams = new HashMap<>();
queryParams.put("catalogVersion", catalogVersionService.getCatalogVersion("yourCatalogVersion", "yourCatalogId"));
final SearchResult<CMSComponentModel> searchResult = flexibleSearchService.search(query, queryParams);
List<CMSComponentModel> components = searchResult.getResult();
for (CMSComponentModel component : components) {String name = component.getName();
    String typeCode = component.getItemtype();
    // ...
}

应用 CMSComponentService 查问 API

另一个可行的办法是应用 CMSComponentService API。您能够应用以下步骤来批量返回多个 CMS 组件数据:

构建 CMSComponentType 以指定要检索的 CMS 组件类型。
调用 CMSComponentService API 的 getComponentsForType 办法,并传递 CMSComponentType 作为参数。
获取返回的 CMS 组件列表并遍历它们,以获取每个组件的属性和值。
以下是示例代码:

CMSComponentType type = cmsComponentService.getCMSType("yourComponentTypeCode");
List<CMSComponent> components = cmsComponentService.getComponentsForType(type);
for (CMSComponent component : components) {String name = component.getName();
    String typeCode = component.getItemtype();
    // ...
}

应用 CMS Component Web Service 是通过 OCC API 批量检索 CMS 组件数据的一种简略办法。您能够应用以下步骤来批量返回多个 CMS 组件数据:

  1. 构建带有 catalogVersion 参数的 URL,以指定要检索的 CMS 组件所属的目录版本。
  2. 调用 CMS Component Web Service 并传递 URL 作为参数。
  3. 获取返回的 CMS 组件列表并遍历它们,以获取每个组件的属性和值。
    以下是示例代码:
String catalogVersion = "yourCatalogVersion";
String url = "/cmscomponents?catalogId=yourCatalogId&catalogVersion=" + catalogVersion;
List<CMSComponentData> components = commerceWebService.get(url, new TypeReference<List<CMSComponentData>>() {});
for (CMSComponentData component : components) {String name = component.getName();
    String typeCode = component.getTypeCode();
    // ...
}

无论您抉择哪种办法,都应该先相熟 SAP Commerce Cloud 的 CMS API 文档,并依据您的具体需要调整查问条件和办法参数。

退出移动版