0
点赞
收藏
分享

微信扫一扫

SAP Spartacus 中的 HTTP URL parameters


使用带有参数请求选项的 ​​HttpParams​​ 类在 HttpRequest 中添加 URL 查询字符串。

下面的例子,searchHeroes() 方法查询名字中包含搜索词的英雄。

首先导入 HttpParams 类,如下图高亮代码所示:

SAP Spartacus 中的 HTTP URL parameters_Spartacus

如果有搜索词,代码会使用 HTML URL 编码的搜索参数构造一个选项对象。 例如,如果术语是“cat”,则 GET 请求 URL 将是 api/heroes?name=cat。

HttpParams 对象是不可变的。 如果您需要更新选项,请保存 .set() 方法的返回值。

下面是 Spartacus Customer Search 的一个例子:

SAP Spartacus 中的 HTTP URL parameters_Angular_02

上述代码设置了两个参数,​​baseSite​​​ 值为当前处于 active 状态的 base site 值,而 sort 参数硬编码为 ​​byNameAsc​​.

使用用户名 ​​asagent​​​ 登录 ASM module 之后,在 customer 字段输入客户名,比如 ​​jerry​​,能看到 Chrome 开发者工具 network 面板的请求:

SAP Spartacus 中的 HTTP URL parameters_http_03

SAP Spartacus 中的 HTTP URL parameters_Spartacus_04

url:

​https://xxx:9002/assistedservicewebservices/customers/search?baseSite=electronics-spa&sort=byNameAsc&query=jerry&pageSize=20​

url 里的 query 和 pageSize 的参数,设置代码如下:

SAP Spartacus 中的 HTTP URL parameters_前端_05

customerSearch(
options: CustomerSearchOptions
): Observable<CustomerSearchPage> {
const headers = InterceptorUtil.createHeader(
USE_CUSTOMER_SUPPORT_AGENT_TOKEN,
true,
new HttpHeaders()
);
let params: HttpParams = new HttpParams()
.set('baseSite', this.activeBaseSite)
.set('sort', 'byNameAsc');

if (typeof options['query'] !== 'undefined') {
params = params.set('query', '' + options.query);
}

if (typeof options['pageSize'] !== 'undefined') {
params = params.set('pageSize', '' + options.pageSize);
}

const url = this.occEndpointsService.buildUrl(
'asmCustomerSearch',
{},
{
baseSite: false,
prefix: false,
}
);

return this.http
.get<CustomerSearchPage>(url, { headers, params })
.pipe(this.converterService.pipeable(CUSTOMER_SEARCH_PAGE_NORMALIZER));
}

按照 Spartacus 数据交换的惯例,这个 adapter 被 connector 调用:

SAP Spartacus 中的 HTTP URL parameters_Spartacus_06

connector 的 customerSearch 方法被 Customer Effect 调用,后者在接收到 Ngrx ​​AsmActions.CUSTOMER_SEARCH​​ 之后就会触发:

SAP Spartacus 中的 HTTP URL parameters_javascript_07

这里提到的 ASM,是 SAP Commerce Cloud 中的一个附加组件。它允许客户服务代表以客户身份登录店面或网站,并获得与客户相同的店面视图。 登录后,代理可以代表客户执行任何操作。

SAP Spartacus 中的 HTTP URL parameters_javascript_08

此功能在 ​​b2c_acc_plus​​​ 和 ​​b2b_acc_plus​​ 配方中开箱即用。 但是,如果您已使用其他一些常用模块(例如 b2c_acc 或 b2b_acc)初始化 SAP Hybris,仍然可以使用 ASM 模块。

属于 ​​Agent​​ 或其相关组的任何员工都可以像任何客户一样登录和模拟,并执行客户可以执行的所有操作。


举报

相关推荐

SAP Spartacus 里的 icon 设计

0 条评论