关于前端:SAP-Spartacus-中的-HTTP-URL-parameters

2次阅读

共计 1614 个字符,预计需要花费 5 分钟才能阅读完成。

应用带有参数申请选项的 HttpParams 类在 HttpRequest 中增加 URL 查问字符串。

上面的例子,searchHeroes() 办法查问名字中蕴含搜索词的英雄。

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

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

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

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

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

应用用户名 asagent 登录 ASM module 之后,在 customer 字段输出客户名,比方 jerry,能看到 Chrome 开发者工具 network 面板的申请:

url:

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

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

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 调用:

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

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

此性能在 b2c_acc_plusb2b_acc_plus 配方中开箱即用。然而,如果您已应用其余一些罕用模块(例如 b2c_acc 或 b2b_acc)初始化 SAP Hybris,依然能够应用 ASM 模块。

属于 Agent 或其相干组的任何员工都能够像任何客户一样登录和模仿,并执行客户能够执行的所有操作。

正文完
 0