#F5F5F5

使用 GraphQL API 大規模提供結構化內容

#F5F5F5

利用 GraphQL API 與 Adobe Experience Manager Sites 加速全通道內容傳遞

Adobe Experience Manager Sites 為開發者提供原生的 GraphQL API 整合功能,旨在簡化結構化內容在網頁、應用程式及其他數位通道上的傳遞流程。此功能可讓團隊擴大內容營運的規模,同時滿足對動態、個人化體驗日益增長的需求。

GraphQL API 簡化內容傳遞

舊有的 REST API 往往會讓應用程式承受多次伺服器呼叫或過量數據負載的負擔,從而降低效能並使開發過程變得複雜。Experience Manager Sites 透過其原生的 GraphQL API 解決了這個問題——使前端團隊能夠在一次高效且精確的請求中,查詢到他們確切需要的內容。

作為企業級 CMS 的首選,Experience Manager Sites 將結構化內容管理與現代化的交付能力相結合。其 GraphQL 整合功能消除了僵化的端點結構,能夠在網站、應用程式及數位體驗中實現可擴展、高性能的內容交付。

Experience Manager Sites 的 GraphQL API 專為當今的可組合式架構設計,能夠提供更快的頁面加載速度、更敏捷的開發流程,以及企業為大規模且精確地滿足不斷演變的客戶需求所需的靈活性。

GraphQL API 整合改進內容的建立

Experience Manager 中的 GraphQL API 旨在公開結構化內容——尤其是內容片段,以實現跨任何數位渠道的無周邊交付。作為單一、靈活的端點,API 可讓客戶端應用程式在需要時精確獲取所需內容。

這種現代、基於圖形的方法相較於傳統的 REST 方法具有明顯優勢:

  • 效率: 透過單一 API 呼叫即可檢索複雜、嵌套的內容結構,無需再串聯多個端點。這簡化了開發流程並加快了頁面載入速度。
  • 精確度: 開發者僅查詢所需欄位,從而減少了數據負載大小並提高了效能,尤其在行動網路上效果更佳。
  • 靈活性: GraphQL API 不依賴於特定的前端框架,允許團隊使用任何框架(如 React、Angular、Vue 等)進行構建,而不限於專有的 SDK。

GraphQL API 與傳統 REST API 的比較

功能

Experience Manager GraphQL API

傳統 REST API

端點結構
通常,每個設定一個統一的 GraphQL 端點。
每個資源或使用案例有多個端點。
數據擷取
用戶端指定查詢中需要的準確欄位。
伺服器為每個端點定義固定的數據結構。
過度擷取或擷取不足
已避免;傳回精準的數據。
常見問題:可能獲取太多或太少的數據。
請求量
在一個請求中擷取相關的數據(嵌套的片段)。
通常需要多次請求相關的數據。
快取(標準要求)
POST 要求通常不會被中介者快取。
GET 要求很容易快取。
快取(Experience Manager 實務)
持久化查詢可實現可快取的 GET 要求。
GET 要求很容易快取。
API 的演進
架構可以演進;能輕鬆新增非破壞性欄位。
新增欄位可能會造成破壞性變更;通常需要進行版本控制。

Experience Manager Sites 中的關鍵 GraphQL 功能

GraphQL 與 Experience Manager Sites 的 API 整合後具有幾項關鍵功能:

產生 GraphQL 架構

Experience Manager Sites 可透過從您的內容片段模型自動產生 GraphQL 架構,簡化無周邊開發流程,無需手動建立架構。當內容架構師定義或更新模型時,Experience Manager 會立即將這些變更轉譯為對應端點上即時且完全類型化的 GraphQL 架構。

這種動態架構產生提供了企業級的優勢:

  • 強類型檢查與早期驗證: 透過架構強制實施的類型檢查,可確保結果的可預測性,並在執行前捕獲到無效的查詢,從而在開發過程中節省時間並減少錯誤。
  • 內建的自我檢視: 開發人員可以查詢架構本身,從而利用 GraphQL 工具實現自動補全、驗證和內聯文件等功能。
  • 內容驅動的一致性: 架構反映實際的內容結構,成為單一事實來源。這種作者與開發人員之間的緊密對齊,簡化了協作流程,並消除了架構漂移的問題。

透過自動化架構產生,Experience Manager Sites 加速了無周邊開發的構建速度,降低了維護開銷,並填補了結構化內容與可擴展交付之間的鴻溝。

使用 GraphQL 精確查詢所需內容

GraphQL 讓客戶端應用程式能夠完全掌控其內容請求的結構與具體性。在 Experience Manager Sites 中,開發人員會使用 GraphQL 查詢,從內容片段中高效地擷取結構化內容——這些內容都是根據其應用程式需求量身打造的。關鍵功能包括:

  • 欄位選擇: 僅擷取所需的欄位——不多不少——從而最小化負載大小並提升效能。
  • 針對性片段存取: 透過路徑查詢個別的內容片段,或依模型類型傳回清單。
  • 進階篩選: 透過對欄位值應用篩選條件,縮小結果範圍。
  • 嵌套內容擷取: 在一個查詢中獲取嵌套或連結的內容片段——非常適合處理複雜的內容關係。
  • 本地化與變化版本內容: 請求片段的特定變化版本,以提供個人化、地區性或通道特定的體驗。
  • 帶變數的動態查詢: 在執行階段注入如 ID 或搜尋詞等值,以建立靈活、可重用的查詢,而無需重新編寫結構。

透過在 Sites 中使用 GraphQL,開發人員獲得了強大且直覺的介面,用於無周邊內容存取——該介面專為速度、可擴展性與精確性而設計。

安全且可擴展的 GraphQL 端點設定

在 Experience Manager Sites 中,GraphQL 查詢會傳送到指定的端點——這些特定 URL 作為無周邊內容交付的存取點。與針對不同資源設有多個端點的 REST API 不同,GraphQL 會透過每個設定中的單一端點集中處理互動,從而簡化開發流程並提高可維護性。

為確保適當的治理,Sites 中的 GraphQL 端點必須由管理員明確設定、啟用並發佈。此方法在公開結構化內容之前,強化了安全性與控制。Sites 支援兩種類型的 GraphQL 端點:

  • 全域端點: 授予存取在全域設定中定義的內容片段模型,以及來自任何站點特定設定的模型的權限。非常適合於跨專案重用的共用內容結構。
  • 站點特定端點: 此端點與站點特定或專案設定綁定,僅限制存取該設定的模型以及全域中的模型——提供清晰的隔離並減少跨專案的曝光。

這種靈活的設定可讓企業精確管理跨品牌、地區或業務單元的內容交付——確保可擴展性,同時不損害安全性或清晰度。

導覽 GraphQL 端點

常見問題

GraphQL API 與 REST API 有何不同?
GraphQL 是一種現代的 API 查詢語言,它允許客戶端從單一端點精確地請求所需的數據,這與依賴多個端點和固定數據結構的 REST API 不同。這使得 GraphQL 更高效、更靈活,是動態且內容豐富的應用程式的理想選擇。

進一步了解 GraphQL API

Content as a Service v3 - experience-manager-sites - Wednesday, May 21, 2025 at 13:55