在 AEM Headless 開發人員歷程的這一部分中,您可以了解如何建立內容結構模型。然後使用內容片段模型和內容片段實現 Adobe Experience Manager (AEM) 的結構,以便跨管道重複使用。
一開始,了解 CMS Headless 開發介紹無周邊內容傳遞以及使用它的原因。然後AEM Headless as a Cloud Service 快速入門以您自己的專案而言描述 AEM Headless 如何運作。
在 AEM 無周邊歷程的上一個文件「踏上首次使用 AEM Headless 之路」中,您接著了解實作第一個專案所需的步驟。閱讀本文件後,您應該:
本文章以這些基本知識為基礎,以便您了解如何準備您自己的 AEM 無周邊專案。
資料模型是一個非常大的領域,因為它在開發關聯式資料庫時會用到。有許多書籍和線上資訊來源可供您使用。
在建立資料模型和 AEM Headless 搭配使用時,我們只考慮感興趣的層面。
外面的世界很大很糟糕。
也許是,也許不是,但這肯定是一個很大的複雜世界,資料模型用於定義一個非常 (極為) 小的子部分的簡化表示,使用特定目的所需的特定資訊。
由於 AEM 處理內容,我們將資料模型稱為內容模型。
例如:
有很多學校,但它們都有很多共同點:
即使在這麼小的例子中,此清單也似乎無止盡。但是,如果您只想讓您的應用程式執行一項簡單的任務,則需要將資訊限制在最基本的範圍內。
例如,為該地區的所有學校宣傳特別活動:
您想要描述的內容稱為實體 - 基本上是我們要儲存關於其資訊的「東西」。
我們想要儲存關於它們的資訊是屬性,例如老師的姓名和資格。
那麼實體之間就是各種關係。例如,通常一個學校只有一位校長,還有很多老師 (校長通常也是老師)。
分析和定義此資訊的流程以及彼此間的關係被稱之為內容模型。
通常,您需要先繪製描述實體及其關係的概念性結構描述。通常這是高層級的 (概念性)。
穩定後,您可以將模型轉譯成描述實體、屬性和關係的邏輯結構描述。在此層級,您應該仔細檢查定義以消除重複並最佳化您的設計。
有時這兩個步驟會合併,通常取決於您的情境複雜性。
例如,Head Teacher
和 Teacher
是否需要各自成為單獨的實體,或者只是 Teacher
模型的額外屬性?
需要資料完整性來保證您的內容在其整個生命週期內的準確性和一致性。這包括確保內容作者可以輕鬆了解什麼儲存在哪裡 - 因此以下事項至關重要:
當內容結構中相同資料儲存兩次時,就會出現資料冗餘。應該避免這種情況,因為在建立內容時會造成困惑,查詢時會發生錯誤,更不用說濫用儲存空間了。
最佳化結構,您可以提高內容建立和查詢的效能。
一切都是平衡的行為,但建立的結構若過於複雜或層次過多,可能:
讓產內容的作者感到困惑。
如果查詢必須存取多個巢狀 (被參考的) 內容片段以擷取所需內容,就會嚴重影響效能。
資料模型是一套既有的技術,通常在開發關聯式資料庫時使用,那麼內容模型對 AEM Headless 代表什麼?
為確保您的應用程式能夠始終一致、有效率地從 AEM 要求和接收所需內容,這些內容必須結構化。
這表示您的應用程式預先知道回應採用的格式,因此知道如何處理回應。這比接收自由格式的內容要容易得多,自由格式的內容必須剖析以確定它包含什麼以及如何使用它。
AEM 使用內容片段來提供將內容 Headless 傳遞到應用程式所需的結構。
您的內容模型結構:
內容片段模型也作為 AEM GraphQL 結構描述的基礎,用於擷取您的內容 - 在後面的課程會詳細介紹。
對內容的要求是使用 AEM GraphQL API 發出的,這是標準 GraphQL API 的自訂實作。AEM GraphQL API 允許您對內容片段執行 (複雜) 查詢,每個查詢都根據特定的模型類型。
然後,您的應用程式可以使用傳回的內容。
內容片段模型提供多種機制,允許您定義內容的結構。
內容片段模型描述一個實體。
您必須在設定瀏覽器中啟用內容片段功能,才能建立新模型。
應該命名模型,以便內容作者在建立內容片段時知道要選取哪個模型。
在模型中:
例如:
AEM 提供以下資料類型用於建立內容模型:
兩種資料類型允許您參考特定片段之外的內容:
內容參考
這提供對任何類型之其他內容的簡單參考。
例如,您可以參考在指定之位置的影像。
片段參考
這提供對其他內容片段的參考。
此類型的參考用於建立巢狀內容,引入建立內容模型時所需的關係。
可以設定此資料類型以允許片段作者:
一開始您需要為網站啟用內容片段模型,這是在設定瀏覽器中的「工具 -> 一般 -> 設定瀏覽器」中完成的。您可以選擇設定全域項目,也可以建立新設定。例如:
請參閱其他資源 - 設定瀏覽器中的內容片段
然後可以建立內容片段模型並定義結構。此操作可以在工具 ->一般 -> 內容片段模型下完成。例如:
請參閱其他資源 - 內容片段模型。
內容片段一律以內容片段模型為基礎。模型提供結構,片段保存內容。
實際建立內容的第一步是建立內容片段。這是使用「建立 -> 內容片段」在「資產 -> 檔案」下的所需資料夾中完成的。精靈將引導您完成這些步驟。
內容片段基於特定的內容片段模型 (建立流程第一步時選取的)。
建立片段後,您可以在內容片段編輯器中將其開啟。您可以在這裡:
選擇適當的模型後,在內容片段編輯器中開啟一個內容片段進行編輯:
請參閱其他資源 - 使用內容片段。
如需基本結構範例,請參閱範例內容片段結構。
現在您已經了解如何為您的結構建立模型,並根據結構模型建立內容,下一步是了解如何使用 GraphQL 查詢存取和擷取您的內容片段內容。這將介紹和討論 GraphQL,然後查看一些範例查詢以了解實務運作。