Connecting to Other Systems
Commerce Cloud 解決方案的系統架構由各種系統組成,這些系統通常在各種應用層(包括前端)上進行編排。
Spartacus 預設連接配接到 SAP Commerce Cloud API,但底層架構也可用于其他系統。 這是通過所謂的“連接配接器”完成的,可以添加連接配接器以連接配接到其他系統。
Component Data Binding
Spartacus 提供綁定到(複雜)商務資料和 Commerce Cloud 後端邏輯的視圖邏輯。 Angular 提供資料綁定标準,并依賴反應式程式設計作為資料綁定的最佳實踐和标準模式。以下最佳實踐用于 Spartacus 中的資料綁定:
UI元件使用标準的 Angular 異步管道從後端綁定到可觀察資料。
UI 元件不會在本地存儲來自 observable 的響應資料,這意味着可以避免銷毀邏輯。 RxJS 可管道化邏輯可用于在觀察資料時實作任何邏輯。
後端資料存儲在由狀态管理系統提供的中央資料存儲中。斯巴達克斯使用 NgRx。
狀态管理系統的複雜性被外觀層隐藏,為元件開發人員提供簡單的 API。
您可以使用連接配接器、擴充卡和轉換器邏輯來配置後端系統。客戶可以提供替代實作來使用特定的後端。
這種資料綁定設計涉及多個層次,如下:
UI元件:UI層隻關心UI的視圖邏輯。 UI 元件觀察由外觀層提供的資料。
Facade 層:Facade 層隐藏了記憶體資料存儲(NgRx)的複雜性。 該層旨在簡化您的開發,讓您專注于自定義視圖邏輯。
記憶體存儲:Spartacus 使用 NgRx 存儲進行狀态管理。 NgRx 被認為是複雜的,建議您使用 Facade 層。
後端連接配接器:後端連接配接器由 NgRx effect 調用,并在所需的 UI 模型中傳回來自後端的響應。
連接配接器委托給與後端系統互動的擴充卡。
盡管這是一個相當複雜的設定,但您無需擔心大多數層。 當您想将 UI 元件連接配接到替代資料源時,您可以自定義一些低級層,而無需關心外觀層或資料存儲。 隻有當需要替代的用戶端業務邏輯時,您才會提供額外的邏輯(很可能,靠近 UI 層)。
Connector Logic
連接配接器邏輯位于 in-memory data store 和後端之間。 每個域都使用一個特定的連接配接器來将連接配接解除安裝到後端系統。 例如,産品連接配接器負責加載産品詳細資訊。
為了提供最佳的靈活性,連接配接到後端系統涉及三個實體:連接配接器、擴充卡和轉換器。 但是請注意,當您使用第三方系統時,并非所有實體都必須涉及。
盡管使用了不同的名稱(例如,填充器或序列化器而不是轉換器),但這是跨不同架構和技術堆棧的常見模式。
細粒度的設定有助于分離關注點,并簡化進一步的定制。 話雖如此,當您綁定到替代資料源時,沒有什麼能阻止您進一步簡化設定。
Connector
連接配接器協調與源系統的連接配接。 連接配接器層可以被認為是過度設計的,因為有時會提供标準資料,即使在切換到替代系統的情況下也是如此。 連接配接器的一個真實示例用例是在加載結構化 CMS 資料時:Spartacus 可以設定為添加靜态 CMS 資料而完全不依賴後端,或者作為後備,以防 CMS 無法提供足夠的資料。
連接配接器的主要任務是将後端資料的加載和轉換委托給擴充卡。
Adapter
擴充卡層負責加載和送出資料到源系統。 預設情況下,Spartacus 使用 OCC(SAP Commerce Cloud 的标準 REST API)。 擴充卡(和轉換器)在單獨的子產品中發貨和提供,是以它們在最終建構中成為可選的,以防您希望使用替代系統。
可以配置 OCC 擴充卡中使用的端點,是以 Spartacus 的定制可以非常輕量級。 僅當您使用另一個系統時,才可能需要提供自定義擴充卡。
Convertor
轉換器用于将資料從後端轉換到 UI,反之亦然。Spartacus 使用以下内容來區分這兩個流程:
Normalize 是後端模型到 UI 模型的轉換
Serialize是UI模型到後端模型的轉換,在向後端送出資料的情況下。
為了提供可選的轉換,轉換器是所謂的“多提供者”,這允許 Spartacus 提供特定的轉換器。可選規範化器的一個很好的例子是用于 SmartEdit 內建所需的附加資料的規範化器。
這種內建需要最終 DOM 上的一些附加屬性。 Spartacus 提供了一個可選的轉換器,用于将來自後端源的附加資料标準化為 UI 模型。
轉換器是可選的:當沒有找到給定域的轉換器時,将傳回源資料。此外,每當後端模型等于 UI 模型時,或者在簡單轉換的情況下,擴充卡都可以輕松處理。