Migración de servicios de escaparate

Las páginas de escaparate personalizado que utilizan cualquiera de los servicios BOD CatalogNavigationView relacionados con la búsqueda deben actualizarse para utilizar los nuevos servicios REST de servidor de búsqueda correspondientes.

Por ejemplo, el siguiente fragmento de código es un servicio de búsqueda de BOD getData que se utiliza para llenar un widget de recomendaciones de entrada de catálogo:

<wcf:getData type="com.ibm.commerce.catalog.facade.datatypes.CatalogNavigationViewType" var="catalogNavigationView" 
expressionBuilder="getCatalogEntryViewDetailsByID" scope="request" varShowVerb="showCatalogNavigationView" 
maxItems="100" recordSetStartNumber="0" scope="request">
	<c:forEach var="marketingSpotData" items="${marketingSpotDatas.baseMarketingSpotActivityData}">
		<c:if test='${marketingSpotData.dataType eq "CatalogEntryId"}'>
			<wcf:param name="UniqueID" value="${marketingSpotData.uniqueID}"/>
		</c:if>
	</c:forEach>
	<wcf:contextData name="storeId" data="${storeId}" />
	<wcf:contextData name="catalogId" data="${catalogId}" />
	<wcf:param name="searchProfile" value="IBM_findCatalogEntryDetails_PriceMode"/>
</wcf:getData>
<c:set var="eSpotCatalogIdResults" value="${catalogNavigationView.catalogEntryView}"/>
El siguiente fragmento de código es el servicio basado en REST equivalente:

<wcf:rest var="catalogNavigationView" url="${searchHostNamePath}${searchContextPath}/store/${WCParam.storeId}/productview/byIds" >
<c:forEach var="id" items="${catentryIdQueryList}">
	<wcf:param name="id" value="${id}"/>
</c:forEach>
<wcf:param name="langId" value="${langId}" />
<wcf:param name="currency" value="${env_currencyCode}" />
<wcf:param name="responseFormat" value="json" />
<wcf:param name="catalogId" value="${WCParam.catalogId}" />
<wcf:param name="profileName" value="IBM_findProductByIds_Summary" />
</wcf:rest>
<c:set var="eSpotCatalogIdResults" value="${catalogNavigationView.catalogEntryView}"/>

Los datos de respuesta se formatean en una respuesta de notación de puntos parecida a BOD a fin de minimizar los cambios que son necesarios en el escaparate. En algunos casos, la respuesta se simplifica y se aplana en parejas de nombre-valor más simples, en lugar de utilizar correlaciones internas para agrupar determinados campos.

Puede examinar la respuesta JSON imprimiendo el objeto de respuesta utilizando el código siguiente:

<wcf:json object="${catalogNavigationView}"/>
También puede invocar el servicio REST directamente desde el navegador web o utilizando HTTPRequester o un cliente equivalente para validar de código personalizado:

http://searchServer:port/search/resources/store/1/productview/byId/10001?langId=-1&catalogId=10001¤cy=USD&responseFormat=json&pageSize=12&pageNumber=1 

Para obtener más información sobre las correlaciones de servicios BOD con REST, consulte Correlación entre los servicios BOD de HCL Commerce Search y los servicios REST.

Para obtener más información sobre la API REST de HCL Commerce para la HCL Commerce Search, consulte la lista completa de los parámetros de consulta soportados para los servicios de búsqueda siguientes:
  • search_product
  • search_category
  • search_site_content