在 AEM Headless 開發人員歷程的這一部分中,了解如何使用 REST API 存取和更新內容片段的內容。
在 AEM 無周邊歷程的上一個文件「如何透過 AEM Delivery API 存取您的內容」中,您已了解如何透過 AEM GraphQL API 存取 AEM 中的無周邊內容,現在您應該:
本文章以這些基本知識為基礎,以便您了解如何透過 REST API 在 AEM 更新您的現有無周邊內容。
在 Headless 歷程的上一個文件中,您已了解如何使用 AEM GraphQL API 透過查詢擷取您的內容。
那麼為什麼需要另一個 API?
Assets HTTP API 可讓您讀取您的內容,但它也可讓您建立、更新 和刪除內容 - GraphQL API 無法執行的動作。
Adobe Experience Manager 最新版本的每個開箱即用安裝中都有提供 Assets REST API。
Assets HTTP API 包含:
Assets HTTP API 的目前實作是以 REST 架構型式為基礎,可讓您透過 CRUD 操作 (建立、讀取、更新、刪除) 存取內容。
有了這些操作,API 可讓您將內容服務提供給 JavaScript 前端應用程式,藉此將 Adobe Experience Manager as a Headless CMS (內容管理系統)。或者任何其他可以執行 HTTP 要求並處理 JSON 回應的應用程式。例如,框架型或自訂的單頁應用程式 (SPA) 需要透過 API 提供的內容,通常採 JSON 格式。
內容片段用於無周邊傳遞,內容片段是一種特殊類型的資產。它們用於存取結構化資料,例如文字、數字、日期等。
Assets REST API 使用 /api/assets
端點並需要資產的路徑來存取它 (開頭無 /content/dam
)。
/content/dam/path/to/asset
/api/assets/path/to/asset
例如,若要存取 /content/dam/wknd/en/adventures/cycling-tuscany
,要求 /api/assets/wknd/en/adventures/cycling-tuscany.json
存取:
/api/assets
不需要使用 .model
選擇器。/content/path/to/page
需要使用 .model
選擇器。HTTP 方法決定要執行的操作:
要求內文和/或 URL 參數可用於設定其中一些操作;例如,定義資料夾或資產應由 POST 要求建立。
API 參考文件中定義了受支援要求的確切格式。
根據您使用的是 AEM 作者環境還是發佈環境,以及您的特定使用案例,使用情況可能會有所不同。
強烈建議建立操作與作者執行個體綁定 (目前沒有辦法複製片段以使用此 API 發佈)。
都可以從兩者傳遞,因為 AEM 僅以 JSON 格式提供要求的內容。
來自 AEM 作者執行個體的儲存和傳遞操作應該足以滿足防火牆後的媒體庫應用程式的需求。
如果是即時 Web 傳遞,則建議使用 AEM 發佈執行個體。
AEM執行個體上的Dispatcher設定可能會封鎖對的存取 /api
.
如需更多詳細資訊,請參閱 API 參考。特別是 Adobe Experience Manager Assets API - 內容片段。
使用方式:
GET /{cfParentPath}/{cfName}.json
例如:
http://<host>/api/assets/wknd/en/adventures/cycling-tuscany.json
回應是序列化的 JSON,其內容結構與內容片段中的一樣。參考是以參考 URL 的形式傳遞。
可能有兩種類型的讀取操作:
使用方式:
POST /{cfParentPath}/{cfName}
內文必須包含要建立的內容片段的 JSON 表示,包括應在內容片段元素上設定的任何初始內容。必須設定 cq:model
屬性,並且它必須指向有效的內容片段模型。未這麼做會導致錯誤。也必須加上標頭 Content-Type
,其設定為 application/json
。
使用方式:
PUT /{cfParentPath}/{cfName}
內文必須包含給定內容片段要更新之內容的 JSON 表示。
這可以只是內容片段的標題或描述,或單一元素,或所有元素值和/或中繼資料。
使用方式:
DELETE /{cfParentPath}/{cfName}
如需使用 AEM Assets REST API 的更多詳細資訊,您可以參考:
您已完成此部分的 AEM Headless 開發人員歷程,您應該:
您應該透過下一次檢視檔案來繼續您的AEM Headless歷程 如何使用Headless應用程式上線 您實際將AEM Headless專案上線的位置!