如何透過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呢?

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

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

Assets HTTP API

資產HTTP API包含:

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

目前Assets HTTP API的實作以​REST​架構樣式為基礎,可讓您透過​CRUD​作業(建立、讀取、更新、刪除)存取內容(儲存於AEM中)。

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

資產HTTP API和內容片段

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

使用Assets REST API

存取

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方法會決定要執行的操作:

  • 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屬性,且必須指向有效的內容片段模型。 若無法這麼做,將會導致錯誤。 還需要添加設為application/json的標題Content-Type

更新

使用方式為

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無頭專案上線!

其他資源

本頁內容