當前位置:首頁 > 科技 > 正文

SAP Spartacus 中的 HTTP URL parameters

使用帶有參數請求選項的 HttpParams 類在 HttpRequest 中添加 URL 查詢字符串。

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

首先導入 HttpParams 類,如下圖高亮代碼所示:

SAP Spartacus 中的 HTTP URL parameters

如果有搜索詞,代碼會使用 HTML URL 編碼的搜索參數構造一個選項對象。 例如,如果術語是“cat”,則 GET 請求 URL 将是 api/heroes?name=cat。

HttpParams 對象是不可變的。 如果您需要更新選項,請保存 .set() 方法的返回值。

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

SAP Spartacus 中的 HTTP URL parameters

上述代碼設置了兩個參數,baseSite 值為當前處于 active 狀态的 base site 值,而 sort 參數硬編碼為 byNameAsc.

使用用戶名 asagent 登錄 ASM module 之後,在 customer 字段輸入客戶名,比如 jerry,能看到 Chrome 開發者工具 network 面闆的請求:

SAP Spartacus 中的 HTTP URL parameters

SAP Spartacus 中的 HTTP URL parameters

url:

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

url 裡的 query 和 pageSize 的參數,設置代碼如下:

SAP Spartacus 中的 HTTP URL parameters

customerSearch(
    options: CustomerSearchOptions
  ): Observable {
    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(url, { headers, params })
      .pipe(this.converterService.pipeable(CUSTOMER_SEARCH_PAGE_norMALIZER));
  }

按照 Spartacus 數據交換的慣例,這個 adapter 被 connector 調用:

SAP Spartacus 中的 HTTP URL parameters

connector 的 customerSearch 方法被 Customer Effect 調用,後者在接收到 Ngrx AsmActions.CUSTOMER_SEARCH 之後就會觸發:

SAP Spartacus 中的 HTTP URL parameters

這裡提到的 ASM,是 SAP Commerce Cloud 中的一個附加組件。它允許客戶服務代表以客戶身份登錄店面或網站,并獲得與客戶相同的店面視圖。 登錄後,代理可以代表客戶執行任何操作。

SAP Spartacus 中的 HTTP URL parameters

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

屬于 Agent 或其相關組的任何員工都可以像任何客戶一樣登錄和模拟,并執行客戶可以執行的所有操作。

原文地址:https://cloud.tencent.com/developer/article/2138104

你可能想看:

有話要說...

取消
掃碼支持 支付碼