如何通過交付API訪AEM問內容

無AEM頭開發者之旅, 您可以學習如何使用GraphQL查詢訪問內容片段的內容並將其饋送到您的應用(無頭傳遞)。

注意

此功能的某些功能在預發行渠道中可用。 特別是與永續查詢相關的功能。

查看 預發行渠道文檔 有關如何為您的環境啟用該功能的資訊。

到目前為止的故事

在前一篇無頭旅AEM程中, 如何對內容建模 您在中學習了內容建模的基礎知識AEM,因此您現在應該瞭解如何對內容結構建模,然後使用內容片段模型和內容片AEM段來實現該結構:

  • 識別與內容建模相關的概念和術語。
  • 瞭解為什麼無頭內容交付需要內容建模。
  • 瞭解如何使用內容片段模AEM型(以及使用內容片段創作內容)實現此結構。
  • 瞭解如何對內容建模;基本樣本原則。

本文基於這些基礎知識,因此您可以瞭解如何使用AEMGraphQL API訪問現有無AEM頭內容。

  • 觀眾:初學者
  • 目標:瞭解如何使用AEMGraphQL查詢訪問內容片段的內容:
    • 介紹GraphQL和AEMGraphQL API。
    • 深入瞭解GraphQL API的AEM詳細資訊。
    • 查看一些示例查詢,瞭解實際操作中的操作。

您想訪問您的內容嗎?

所以……你擁有所有這些內容,結構整齊(在內容片段中),只是在等待輸入新應用。 問題是,怎麼去?

您需要的是一種方法,以特定內容為目標,選擇所需內容並將其返回到您的應用程式以進行進一步處理。

利用Adobe Experience Manager(AEM)as a Cloud Service,您可以使用AEMGraphQL API有選擇地訪問內容片段,以僅返回所需內容。 這意味著您可以實現結構化內容的無頭傳送,以便在您的應用程式中使用。

注意

GraphQL APIAEM是基於標準GraphQL API規範的自定義實現。

GraphQL — 簡介

GraphQL是一種開源規範,它提供:

  • 一種查詢語言,使您能夠從結構化對象中選擇特定內容。
  • 一個運行時,用於使用結構化內容完成這些查詢。

GraphQL是 強烈 類型化API。 這意味著 全部 內容必須按類型明確地進行結構化和組織,以便GraphQL 理解 如何訪問以及如何訪問。 資料欄位在GraphQL架構中定義,用於定義內容對象的結構。

然後,GraphQL端點提供響應GraphQL查詢的路徑。

所有這些都意味著您的應用能夠準確、可靠、高效地選擇它需要的內容 — 這正是您使用時需要的AEM內容。

注意

請參閱 圖形QL.org和 圖形QL.com。

AEMGraphQL API

GraphQL API是基於標準AEMGraphQL API規範的自定義版本,特別配置為允許您對內容片段執行(複雜)查詢。

使用內容片段,因為內容是根據內容片段模型構建的。 這滿足了GraphQL的基本要求。

  • 內容片段模型由一個或多個欄位組成。
    • 每個欄位都根據資料類型定義。
  • 內容片段模型用於生成相應AEM的GraphQL模式。

要實際訪問GraphQLAEM(和內容),使用端點提供訪問路徑。

通過GraphQL API返回的AEM內容,然後可供應用程式使用。

為幫助您直接輸入和test查詢,標準GraphiQL介面的實現也可用於AEMGraphQL(可隨附安AEM裝)。 它提供語法突出顯示、自動完成、自動建議等功能,以及歷史記錄和線上文檔。

注意

GraphQLAEM API實現基於GraphQL Java庫。

用於GraphQL API的內AEM容片段

內容片段可用作架構和查詢的GraphQLAEM的基礎,如下所示:

  • 它們使您能夠設計、建立、建立和發佈可以毫無頭緒地傳送的獨立於頁面的內容。
  • 它們基於內容片段模型,該模型使用選擇的資料類型預先定義結果片段的結構。
  • 可使用「片段參照」(Fragment Reference)資料類型(定義模型時可用)實現其它結構層。

內容片段模型

以下內容片段模型:

  • 用於生成方案 已啟用
  • 提供GraphQL所需的資料類型和欄位。 它們確保您的應用程式只請求可能的內容,並接收預期的內容。
  • 資料類型 片段引用 可在模型中使用以引用另一個內容片段,因此引入其他級別的結構。

片段引用

片段引用:

  • 是定義內容片段模型時可用的特定資料類型。

  • 引用另一段,取決於特定內容段模型。

  • 允許您建立和檢索結構化資料。

    • 定義為 多饋,多個子片段可以由素片段引用(檢索)。

JSON預覽

要幫助設計和開發內容片段模型,可以在內容片段編輯器中預覽JSON輸出。

JSON預覽

實際使AEM用GraphQL API

初始設定

在開始查詢內容之前,您需要:

示例結構

要在查詢中實AEM際使用GraphQL API,我們可以使用兩種非常基本的內容片段模型結構:

  • 公司
    • 名稱 — 文本
    • CEO(人員) — 片段參考
    • 員工(人員) — 片段參考
  • 人員
    • 名稱 — 文本
    • 名字 — 文本

如您所見,「CEO」(CEO)和「員工」(Employees)欄位,引用「人員」(Person)片段。

將使用碎片模型:

  • 在內容片段編輯器中建立內容時
  • 生成要查詢的GraphQL架構

test查詢的位置

查詢可以在GraphiQL介面中輸入。 可以從以下任一位置訪問查詢編輯器:

  • 工具 -> 常規 -> GraphQL查詢編輯器
  • 直接;比如說, http://localhost:4502/aem/graphiql.html

GraphiQL介面

查詢入門

直接查詢是返回公司架構中所有條目的名稱。 在此,您請求列出所有公司名稱:

query {
  companyList {
    items {
      name
    }
  }
}

一個稍複雜的查詢是選擇沒有「Jobs」名稱的所有人員。 這將篩選所有名稱不為Job的人員。 這是使用EQUALS_NOT運算子實現的(還有更多):

query {
  personList(filter: {
    name: {
      _expressions: [
        {
          value: "Jobs"
          _operator: EQUALS_NOT
        }
      ]
    }
  }) {
    items {
      name
      firstName
    }
  }
}

您還可以構建更複雜的查詢。 例如,查詢至少有一名名為「Smith」的員工的所有公司。 此查詢說明了對名為「Smith」的任何人的篩選,從嵌套片段返回資訊:

query {
  companyList(filter: {
    employees: {
      _match: {
        name: {
          _expressions: [
            {
              value: "Smith"
            }
          ]
        }
      }
    }
  }) {
    items {
      name
      ceo {
        name
        firstName
      }
      employees {
        name
        firstName
      }
    }
  }
}

有關使用GraphQL API的完AEM整詳細資訊,以及配置必要的元素,可參考:

  • 學習將GraphQL與
  • 樣本內容片段結構
  • 學習將GraphQL與AEM樣例內容和查詢一起使用

下一步是什麼

現在,您已經學會了如何使用GraphQL API訪問和查詢AEM無頭內容 瞭解如何使用REST API訪問和更新內容片段的內容

其他資源

本頁內容