当前位置: 首页 > Web前端 > JavaScript

SAP电商云每个不同的JavaScript店面如何配置API端点

时间:2023-03-27 02:16:12 JavaScript

客户有多个JS店面,希望每个店面连接到不同的API端点,但默认情况下,所有JS店面都绑定设置为相同的API。除非显式配置OCC基本URL,否则当前实现中云门户中的第一个API端点将是与每个JSStorefront关联的端点。解决方案每个JSStorefront应用程序都应该使用index.html中的元标记显式定义OCC基本URL,例如以下代码:开发人员可以使用特殊的HTML元标记配置基本URL,而不是使用provideConfig()在Spartacus配置中对其进行硬编码。这允许您仅使用一个已编译的JavaScript应用程序部署到不同的环境,因为您只需要为每个环境修改index.html文件的元标记。app.module.ts中provideConfig()中backend.occ.baseUrl的值优先于meta标签中的值,所以如果客户希望baseURL由meta标签动态驱动,请不要在provideConfig().实际项目中的一个常见问题是Spartacus不小心通过公共网络而不是内部向API服务发送请求。下面是一个正常的请求:https://api.---public.model-t.cc.commerce.ondemand.com/occ/v2下面是是一个错误Requestfor:https://api..com/occ/v2出现这个错误的原因是由于误解,错误修改/自定义了occ-backend-base-url的值。以下是错误的实现:.com/occ/v2/>正确的实现:只有使用正确的占位符OCC_BACKEND_BASE_URL_VALUE,才能在部署到CCV2时,将这个占位符正确替换为API方面的实际API端点。有两种方法可以为Spartacus配置CORS。方法一:本地属性配置通过hac、服务配置或者manifest.json引用的属性文件来改变属性。方式二:全局CORS配置在Backoffice配置:第二种配置优先级高。逻辑在de.hybris.platform.core.cors.web.DefaultCorsConfigurationSource中实现,代码如下。全局CORS配置存储在CorsConfigurationProperty项内的数据库中。这是全局的,适用于连接到集群的所有节点。数据库中的属性优先于本地属性。如果在数据库和属性文件中都配置了相同的属性上下文和键,则从数据库中获取值。