如何透過 AEM Assets API 更新您的內容 update-your-content

AEM Headless 開發人員歷程的這一部分中,了解如何使用 REST API 存取和更新內容片段的內容。

目前進度 story-so-far

在 AEM Headless 歷程的上一個文件「如何透過 AEM Delivery API 存取您的內容」中,您已了解如何透過 AEM GraphQL API 存取 AEM 中的 Headless 內容,現在您應該:

  • 對 GraphQL 有概略的了解。
  • 了解 AEM GraphQL API 運作方式。
  • 了解一些實際的範例查詢。

本文章以這些基本知識為基礎,以便您了解如何透過 REST API 在 AEM 更新您的現有 Headless 內容。

目標 objective

  • 對象:進階

  • 目標:了解如何使用 REST API 存取和更新內容片段的內容:

    • 介紹 AEM Assets HTTP API。
    • 介紹和討論 API 支援內容片段。
    • 說明 API 的詳細資訊。

為什麼您需要 Assets HTTP API 用於內容片段? why-http-api

在 Headless 歷程的上一個文件中,您已了解如何使用 AEM GraphQL API 透過查詢擷取您的內容。

那麼為什麼需要另一個 API?

Assets HTTP API可讓您 讀取 您的內容,但也可讓您 建立更新刪除 內容 — GraphQL API無法執行的動作。

Assets REST API適用於最新版Adobe Experience Manager的每次現成安裝。

Assets HTTP API assets-http-api

Assets HTTP API 包含:

  • Assets REST API
  • 包含支援內容片段

Assets HTTP API 的目前實作是以 REST 架構型式為基礎,可讓您透過 CRUD 操作 (建立、讀取、更新、刪除) 存取內容。

透過這些作業,API可讓您藉由向JavaScript前端應用程式提供內容服務,將Adobe Experience Manager當作Headless CMS (內容管理系統)來作業。 或者任何其他可以執行 HTTP 要求並處理 JSON 回應的應用程式。例如,框架型或自訂的單頁應用程式 (SPA) 需要透過 API 提供的內容,通常採 JSON 格式。

Assets HTTP API 和內容片段 assets-http-api-content-fragments

內容片段用於 Headless 傳遞,內容片段是一種特殊類型的資產。它們用於存取結構化資料,例如文字、數字、日期等。

使用 Assets REST API using-aem-assets-rest-api

存取 access

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

NOTE
存取:
  • /api/assets不需要 ​使用 .model 選擇器。
  • /content/path/to/page 需要 ​使用 .model 選擇器。

操作 operation

HTTP 方法決定要執行的操作:

  • GET - 檢索資產或資料夾的 JSON 表示
  • POST - 建立新資產或資料夾
  • PUT - 更新資產或資料夾的屬性
  • DELETE - 刪除資產或資料夾
NOTE
要求內文和/或 URL 參數可用於設定其中一些操作;例如,定義資料夾或資產應由 POST 要求建立。

API 參考文件中定義了受支援要求的確切格式。

根據您使用的是 AEM 作者環境還是發佈環境,以及您的特定使用案例,使用情況可能會有所不同。

  • 強烈建議建立操作與作者執行個體綁定 (目前沒有辦法複製片段以使用此 API 發佈)。

  • 都可以從兩者傳遞,因為 AEM 僅以 JSON 格式提供要求的內容。

    • 來自 AEM 作者執行個體的儲存和傳遞操作應該足以滿足防火牆後的媒體庫應用程式的需求。

    • 如果是即時 Web 傳遞,則建議使用 AEM 發佈執行個體。

CAUTION
AEM執行個體上的Dispatcher設定可能會封鎖對的存取 /api.
NOTE
如需更多詳細資訊,請參閱 API 參考。特別是 Adobe Experience Manager Assets API - 內容片段

讀取/傳遞 read-delivery

使用方式:

GET /{cfParentPath}/{cfName}.json

例如:

http://<host>/api/assets/wknd/en/adventures/cycling-tuscany.json

回應是序列化的 JSON,其內容結構與內容片段中的一樣。參考是以參考 URL 的形式傳遞。

可能有兩種類型的讀取操作:

  • 按路徑讀取特定內容片段,這將傳回內容片段的 JSON 表示。
  • 按路徑讀取內容片段資料夾:這將傳回資料夾內所有內容片段的 JSON 表示。

建立 create

使用方式:

POST /{cfParentPath}/{cfName}

內文必須包含要建立的內容片段的 JSON 表示,包括應在內容片段元素上設定的任何初始內容。必須設定 cq:model 屬性,並且它必須指向有效的內容片段模型。未這麼做會導致錯誤。也必須加上標頭 Content-Type,其設定為 application/json

更新 update

使用方式:

PUT /{cfParentPath}/{cfName}

內文必須包含給定內容片段要更新之內容的 JSON 表示。

這可以只是內容片段的標題或描述,或單一元素,或所有元素值和/或中繼資料。

刪除 delete

使用方式:

DELETE /{cfParentPath}/{cfName}

如需使用 AEM Assets REST API 的更多詳細資訊,您可以參考:

  • Adobe Experience Manager Assets HTTP API (其他資源)
  • AEM Assets HTTP API 支援內容片段 (其他資源)

下一步 whats-next

您已完成此部分的 AEM Headless 開發人員歷程,您應該:

  • 了解 AEM Assets HTTP API 的基本知識。
  • 了解此 API 如何支援內容片段。

您應該透過下一次檢視檔案來繼續您的AEM Headless歷程 如何使用Headless應用程式上線 您實際將AEM Headless專案上線的位置!

其他資源 additional-resources

recommendation-more-help
19ffd973-7af2-44d0-84b5-d547b0dffee2