如何透過AEM Assets API更新您的內容

AEM無頭開發者歷程, 了解如何使用REST API存取及更新內容片段的內容。

迄今為止的故事

在AEM無頭歷程的上一份檔案中, 如何透過AEM傳送API存取您的內容 您已了解如何透過AEM GraphQL API存取AEM中的無周邊內容,您現在應:

  • 對GraphQL有更深入的了解。
  • 了解AEM GraphQL API的運作方式。
  • 了解一些實用的範例查詢。

本文以這些基本知識為基礎,讓您了解如何透過REST API更新AEM中現有的無頭內容。

目標

  • 對象:進階
  • 目標:了解如何使用REST API存取及更新內容片段的內容:
    • 介紹AEM Assets HTTP API。
    • 介紹並討論API中的內容片段支援。
    • 說明API的詳細資訊。

為什麼您需要資產HTTP API才能處理內容片段

在無周邊歷程的上一階段,您已了解如何使用AEM GraphQL API來使用查詢擷取內容。

那麼,為何還需要其他API呢?

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

最新Adobe Experience Manager版本的每個現成可用安裝都提供Assets REST API。

Assets HTTP API

資產HTTP API包含:

  • 資產REST API
  • 包括支援內容片段

Assets HTTP API目前的實作是以 REST 架構樣式,並可讓您透過 CRUD 操作(建立、讀取、更新、刪除)。

透過這些操作,API可讓您將Adobe Experience Manager作為無頭CMS(內容管理系統)來運作,方法是向JavaScript前端應用程式提供內容服務。 或可執行HTTP要求和處理JSON回應的任何其他應用程式。 例如,單頁應用程式(SPA)(以架構為基礎或自訂)需要透過API提供的內容,通常為JSON格式。

資產HTTP API和內容片段

內容片段用於無頭傳送,而內容片段是特殊類型的資產。 它們可用來存取結構化資料,例如文字、數字、日期等。

使用Assets REST API

存取

資產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 does 需要使用 .model 選取器。

操作

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

  • GET — 擷取資產或資料夾的JSON表示法
  • POST — 建立新資產或資料夾
  • PUT — 更新資產或資料夾的屬性
  • DELETE — 刪除資產或資料夾
注意

請求內文和/或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的形式傳送。

可能有兩種讀取操作:

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

建立

使用方式為:

POST /{cfParentPath}/{cfName}

內文必須包含要建立之內容片段的JSON表示法,包括應在內容片段元素上設定的任何初始內容。 強制設定 cq:model 屬性,且必須指向有效的內容片段模型。 若無法這麼做,將會導致錯誤。 您也必須新增標題 Content-Type 設為 application/json.

更新

使用方式為

PUT /{cfParentPath}/{cfName}

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

這只能是內容片段的標題或說明、單一元素或所有元素值和/或中繼資料。

刪除

使用方式為:

DELETE /{cfParentPath}/{cfName}

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

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

下一步

現在您已完成AEM Headless Developer Journey的這一部分,您應:

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

您應繼續進行AEM無頭歷程,繼續檢閱此檔案 如何與無頭應用程式一起運行 您實際將AEM Headless專案上線的位置!

其他資源

本頁內容