AEM 배달 API를 통해 콘텐츠에 액세스하는 방법

AEM 헤드리스 개발자 여정의 이 부분에서 GraphQL 쿼리를 사용하여 컨텐츠 조각의 컨텐츠에 액세스하고 이를 앱에 제공하는 방법을 배울 수 있습니다(헤드리스 게재).

지금까지 이야기

AEM 헤드리스 여정의 이전 문서 컨텐츠를 모델링하는 방법AEM에서 컨텐츠 모델링하는 기본 사항을 배웠으므로 이제 컨텐츠 구조를 모델링하는 방법을 이해하고 AEM 컨텐츠 조각 모델 및 컨텐츠 조각을 사용하여 해당 구조를 구현해야 합니다.

  • 컨텐츠 모델링과 관련된 개념과 용어를 인식합니다.
  • 헤드리스 컨텐츠 전달에 컨텐츠 모델링이 필요한 이유를 이해합니다.
  • AEM 컨텐츠 조각 모델(및 컨텐츠 조각으로 컨텐츠 작성)을 사용하여 이 구조를 구현하는 방법을 이해합니다.
  • 컨텐츠를 모델링하는 방법을 이해합니다.기본 샘플을 사용하는 원칙.

이 문서는 AEM GraphQL API를 사용하여 AEM에서 기존 헤드리스 컨텐츠에 액세스하는 방법을 이해할 수 있도록 이러한 기본 사항을 기반으로 합니다.

  • 대상:초보
  • 목표:AEM GraphQL 쿼리를 사용하여 컨텐츠 조각의 컨텐츠에 액세스하는 방법을 알아봅니다.
    • GraphQL 및 AEM GraphQL API를 도입합니다.
    • AEM GraphQL API에 대한 세부 사항을 살펴봅니다.
    • 몇 가지 샘플 쿼리를 보고 실제 작동 방식을 확인합니다.

콘텐츠를 액세스하시겠습니까?

그래서…이 모든 컨텐츠가 깔끔하게 구조화되어 있으며(컨텐츠 조각에서) 새 앱의 피드를 기다리고 있습니다. 문제는, 어떻게 그것을 그곳에 가져다 놓는가 입니다.

필요한 것은 특정 컨텐츠를 타깃팅하고, 필요한 항목을 선택하고, 추가 처리를 위해 앱에 반환하는 방법입니다.

Adobe Experience Manager(AEM)을 Cloud Service으로 사용하면 AEM GraphQL API를 사용하여 컨텐츠 조각에 선택적으로 액세스하여 필요한 컨텐츠만 반환할 수 있습니다. 즉, 애플리케이션에서 사용할 구조화된 컨텐츠의 헤드리스 전달을 실현할 수 있습니다.

노트

AEM GraphQL API는 표준 GraphQL API 사양을 기반으로 하는 사용자 지정된 구현입니다.

GraphQL - 소개

GraphQL은 다음과 같은 기능을 제공하는 오픈 소스 사양입니다.

  • 구조화된 객체에서 특정 컨텐츠를 선택할 수 있는 질의 언어입니다.
  • 구조화된 컨텐츠로 이러한 쿼리를 이행하는 런타임.

GraphQL은 강력한 형식의 API입니다. 즉, 모든 컨텐츠는 유형별로 명확히 구조화되고 구성되어 있어야 GraphQL ​에 액세스할 내용과 방법을 이해합니다. 데이터 필드는 컨텐츠 객체의 구조를 정의하는 GraphQL 스키마 내에 정의됩니다.

그런 다음 GraphQL 종단점은 GraphQL 쿼리에 응답하는 경로를 제공합니다.

즉, AEM에서 사용할 때 필요한 콘텐츠만 앱에서 정확하고 안정적으로 선택할 수 있습니다.

노트

GraphQL.org 및 GraphQL.com을 참조하십시오.

AEM GraphQL API

AEM GraphQL API는 컨텐츠 조각에 대해 (복잡한) 쿼리를 수행할 수 있도록 특별히 구성된 표준 GraphQL API 사양을 기반으로 사용자 지정된 버전입니다.

컨텐츠가 컨텐츠 조각 모델에 따라 구조화되므로 컨텐츠 조각이 사용됩니다. GraphQL의 기본 요구 사항을 충족합니다.

  • 컨텐츠 조각 모델은 하나 이상의 필드로 구성됩니다.
    • 각 필드는 데이터 유형에 따라 정의됩니다.
  • 컨텐츠 조각 모델은 해당 AEM GraphQL 스키마를 생성하는 데 사용됩니다.

GraphQL for AEM(및 컨텐츠)에 실제로 액세스하려면 종단점이 액세스 경로를 제공하는 데 사용됩니다.

AEM GraphQL API를 통해 반환된 콘텐츠는 애플리케이션에서 사용할 수 있습니다.

쿼리를 직접 입력하고 테스트하는 데 도움이 되도록 표준 GraphiQL 인터페이스 구현도 AEM GraphQL에서 사용할 수 있습니다(AEM에서 설치할 수 있음). 여기에는 내역 및 온라인 설명서와 함께 구문 강조, 자동 완료, 자동 제안 등의 기능이 제공됩니다.

노트

AEM GraphQL API 구현은 GraphQL Java 라이브러리를 기반으로 합니다.

AEM GraphQL API에 사용할 컨텐츠 조각

컨텐츠 조각은 다음과 같이 AEM 스키마 및 쿼리를 위한 GraphQL의 기반으로 사용할 수 있습니다.

  • 이 구성 요소를 사용하면 헤드라인으로 전달할 수 있는 페이지에 영향을 받지 않는 컨텐츠를 디자인, 제작, 조정 및 게시할 수 있습니다.
  • 이 모델은 데이터 유형을 선택하여 결과 조각의 구조를 사전 정의하는 컨텐츠 조각 모델을 기반으로 합니다.
  • 모델을 정의할 때 사용할 수 있는 조각 참조 데이터 유형으로 추가 구조 계층을 수행할 수 있습니다.

컨텐츠 조각 모델

이러한 컨텐츠 조각 모델:

  • Enabled​를 한 번 사용하여 스키마를 생성합니다.
  • GraphQL에 필요한 데이터 유형과 필드를 제공합니다. 이 URL은 응용 프로그램이 가능한 요청만 하고 예상 내용을 수신하도록 합니다.
  • 데이터 유형 조각 참조​를 모델에서 사용하여 다른 컨텐츠 조각을 참조하고 추가 구조 수준을 도입할 수 있습니다.

조각 참조

조각 참조:

  • 컨텐츠 조각 모델을 정의할 때 사용할 수 있는 특정 데이터 유형입니다.

  • 특정 컨텐츠 조각 모델에 따라 다른 조각을 참조합니다.

  • 구조화된 데이터를 만든 다음 검색할 수 있습니다.

    • 다중 피드​로 정의되는 경우, 하위 조각에서 여러 하위 조각을 참조(검색)할 수 있습니다.

JSON 미리 보기

컨텐츠 조각 모델을 디자인하고 개발하는 데 도움이 되도록 컨텐츠 조각 편집기에서 JSON 출력을 미리 볼 수 있습니다.

JSON

실제로 AEM GraphQL API 사용

초기 설정

컨텐츠에 대한 쿼리를 시작하기 전에 다음을 수행해야 합니다.

샘플 구조

쿼리에서 AEM GraphQL API를 실제로 사용하려면 두 가지 매우 기본적인 컨텐츠 조각 모델 구조를 사용할 수 있습니다.

  • 회사
    • 이름 - 텍스트
    • CEO(개인) - 조각 참조
    • 사원(개인) - 조각 참조
  • 개인
    • 이름 - 텍스트
    • 이름 - 텍스트

볼 수 있듯이 CEO 및 Employees 필드는 Person 조각을 참조합니다.

조각 모델은 다음과 같이 사용됩니다.

  • 컨텐츠 조각 편집기에서 컨텐츠를 만들 때
  • 쿼리할 GraphQL 스키마를 생성하기 위해

쿼리를 테스트할 위치

쿼리는 GraphiQL 인터페이스에 입력할 수 있습니다. 예를 들면 다음과 같습니다.

  • http://localhost:4502/content/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
      }
    }
  }
}

AEM GraphQL API 사용에 대한 전체 세부 사항과 필요한 요소 구성에 대해 다음을 참조할 수 있습니다.

  • AEM에서 GraphQL을 사용하는 방법 학습
  • 샘플 컨텐츠 조각 구조
  • AEM에서 GraphQL을 사용하는 방법 학습 - 샘플 컨텐츠 및 쿼리

다음 기능

이제 AEM GraphQL API를 사용하여 헤드리스 컨텐츠에 액세스하고 쿼리하는 방법을 배웠으므로 REST API를 사용하여 컨텐츠 조각의 컨텐츠에 액세스하고 업데이트하는 방법을 배울 수 있습니다.

추가 리소스

이 페이지에서는