Toegang tot uw inhoud via AEM levering-API's access-your-content

In dit deel van het AEM Headless Developer Journey, U kunt leren hoe u GraphQL-query's kunt gebruiken om toegang te krijgen tot de inhoud van uw Content Fragments en deze te verzenden naar uw app (koploze levering).

Het verhaal tot nu toe story-so-far

In het vorige document van de AEM zonder kop: Uw inhoud modelleren u leerde de grondbeginselen van inhoud modelleren in AEM, zodat zou u nu moeten begrijpen hoe te om uw inhoudsstructuur te modelleren, dan realiseer die structuur gebruikend AEM Modellen van het Fragment van de Inhoud en de Fragmenten van de Inhoud:

  • De concepten en terminologie met betrekking tot inhoudsmodellen herkennen.
  • Begrijp waarom de inhoud modellering voor de levering van de Inhoud zonder Zwaartepunt nodig is.
  • Begrijp hoe te om deze structuur te realiseren gebruikend AEM Modellen van het Fragment van de Inhoud (en auteursinhoud met de Fragmenten van de Inhoud.
  • Begrijp hoe u uw inhoud modelleert; principes met basismonsters.

Dit artikel bouwt verder op die grondbeginselen zodat u begrijpt hoe te om tot uw bestaande inhoud zonder kop in AEM toegang te hebben gebruikend AEM GraphQL API.

  • Publiek: Begin

  • Doelstelling: Leer hoe u toegang krijgt tot de inhoud van de inhoudsfragmenten met behulp van AEM GraphQL-query's:

    • Introduceer GraphQL en de AEM GraphQL API.
    • Dive into the details of the AEM GraphQL API.
    • Bekijk sommige steekproefvragen om te zien hoe de dingen in praktijk werken.

Wilt u toegang tot uw inhoud? so-youd-like-to-access-your-content

Dus…je hebt al deze inhoud, netjes gestructureerd (in Content Fragments), en gewoon wachten om je nieuwe app te voeden. De vraag is: hoe kan het daar komen?

U hebt een manier nodig om specifieke inhoud als doel in te stellen, te selecteren wat u nodig hebt en terug te sturen naar uw app voor verdere verwerking.

Met Adobe Experience Manager (AEM) hebt u selectief toegang tot uw inhoudsfragmenten, met behulp van de AEM GraphQL API, om alleen de inhoud te retourneren die u nodig hebt. Dit betekent dat u zonder kop gestructureerde inhoud kunt leveren voor gebruik in uw toepassingen.

NOTE
AEM GraphQL API is een aangepaste implementatie, gebaseerd op de standaard GraphQL API-specificatie.

GraphQL - Een inleiding graphql-introduction

GraphQL is een open-source-specificatie die het volgende biedt:

  • een querytaal waarmee u specifieke inhoud van gestructureerde objecten kunt selecteren.
  • een runtime om deze query's uit te voeren met uw gestructureerde inhoud.

GraphQL is krachtig getypeerde API. Dit betekent dat alles de inhoud moet duidelijk zijn gestructureerd en ingedeeld, zodat GraphQL begrijpen wat en hoe te om toegang te hebben. De gegevensvelden zijn gedefinieerd in GraphQL-schema's, die de structuur van de inhoudsobjecten definiëren.

De eindpunten van GraphQL verstrekken dan de wegen die aan de vragen van GraphQL antwoorden.

Dit alles betekent dat uw app de inhoud die het nodig heeft nauwkeurig, betrouwbaar en efficiënt kan selecteren - precies wat u nodig hebt bij AEM.

NOTE
Zie GraphQL.org en GraphQL.com.

GRAPHQL API AEM aem-graphql-api

De AEM GraphQL API is een aangepaste versie gebaseerd op de standaard GraphQL API-specificatie, speciaal geconfigureerd om (complexe) query's uit te voeren op uw Content Fragments.

Inhoudsfragmenten worden gebruikt, omdat de inhoud is gestructureerd volgens Modellen van inhoudsfragmenten. Dit voldoet aan een basisvereiste van GraphQL.

  • Een inhoudsfragmentmodel is samengesteld uit een of meer velden.
    • Elk veld wordt gedefinieerd op basis van een gegevenstype.
  • Modellen van inhoudsfragmenten worden gebruikt om de overeenkomstige AEM GraphQL-schema's te genereren.

Om tot GraphQL voor AEM (en de inhoud) eigenlijk toegang te hebben wordt een eindpunt gebruikt om de toegangspad te verstrekken.

De inhoud die wordt geretourneerd via de AEM GraphQL API kan vervolgens door uw toepassingen worden gebruikt.

Om u direct te helpen input, en testvragen, is een implementatie van de standaard interface GraphiQL ook beschikbaar voor gebruik met AEM GraphQL (dit kan met AEM worden geïnstalleerd). Het biedt functies zoals syntaxismarkering, automatisch aanvullen, automatisch suggereren, samen met een geschiedenis en online documentatie.

NOTE
De AEM GraphQL API-implementatie is gebaseerd op de GraphQL Java-bibliotheken.

Inhoudsfragmenten voor gebruik met de AEM GraphQL API content-fragments-use-with-aem-graphql-api

Inhoudsfragmenten kunnen worden gebruikt als basis voor GraphQL voor AEM schema's en query's als:

  • Zo kunt u pagina-onafhankelijke inhoud ontwerpen, maken, beheren en publiceren die zonder kop kan worden geleverd.
  • Ze zijn gebaseerd op een Content Fragment Model, dat de structuur voor het resulterende fragment vooraf definieert met behulp van een selectie van gegevenstypen.
  • Er kunnen extra structuurlagen worden bereikt met het gegevenstype Fragmentverwijzing, dat beschikbaar is wanneer u een model definieert.

Modellen van inhoudsfragmenten content-fragments-models

Deze modellen van inhoudsfragmenten:

  • worden gebruikt om de schema's eenmaal te genereren Ingeschakeld.
  • Geef de gegevenstypen en velden op die vereist zijn voor GraphQL. Ze zorgen ervoor dat uw toepassing alleen vraagt wat mogelijk is en wat wordt verwacht ontvangt.
  • Het gegevenstype Fragmentverwijzingen U kunt in uw model worden gebruikt om naar een ander inhoudsfragment te verwijzen en zo extra structuurniveaus te introduceren.

Fragmentverwijzingen fragment-references

De Fragmentverwijzing:

  • Is een specifiek gegevenstype beschikbaar wanneer het bepalen van een Model van het Fragment van de Inhoud.

  • Verwijst naar een ander fragment, afhankelijk van een specifiek inhoudsfragmentmodel.

  • Hiermee kunt u gestructureerde gegevens maken en ophalen.

    • Wanneer gedefinieerd als een multifeed Er kan door het primaire fragment naar meerdere subfragmenten worden verwezen (opgehaald).

JSON-voorvertoning json-preview

Om u te helpen bij het ontwerpen en ontwikkelen van modellen van inhoudsfragmenten, kunt u een voorbeeld van JSON-uitvoer weergeven in de Content Fragment Editor.

JSON-voorvertoning

De AEM GraphQL API daadwerkelijk gebruiken actually-using-aem-graphiql

Eerste instelling initial-setup

Voordat u begint met query's op uw inhoud, moet u:

Voorbeeldstructuur sample-structure

Om de AEM GraphQL API in een vraag eigenlijk te gebruiken, kunnen wij de twee zeer basisstructuren van het Model van het Fragment van de Inhoud gebruiken:

  • Bedrijf

    • Naam - tekst
    • CEO (Persoon) - Fragmentverwijzing
    • Werknemers (personen) - Fragmentverwijzing(en)
  • Persoon

    • Naam - tekst
    • Voornaam - tekst

Zoals u kunt zien, verwijzen de gebieden CEO en Werknemers, naar de fragmenten van de Persoon.

De fragmentmodellen worden gebruikt:

  • wanneer u de inhoud maakt in de Content Fragment Editor
  • om de GraphQL-schema's te genereren waarop u een query uitvoert

Waar kan ik uw query's testen? where-to-test-your-queries

De vragen kunnen in GraphiQL-interface, bijvoorbeeld bij:

  • http://localhost:4502/aem/graphiql.html

GraphiQL Interface

Aan de slag met query's getting-Started-with-queries

Een duidelijke vraag moet de naam van alle ingangen in het schema van het Bedrijf terugkeren. Hier kunt u een lijst met alle bedrijfsnamen aanvragen:

query {
  companyList {
    items {
      name
    }
  }
}

Een iets complexere vraag is om alle personen te selecteren die geen naam van "Banen"hebben. Hiermee worden alle personen gefilterd voor personen die niet de naam Taken hebben. Dit wordt bereikt met de operator EQUALS_NOT (er zijn nog veel meer):

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

U kunt ook complexere query's maken. Bijvoorbeeld, vraag voor alle bedrijven die minstens één werknemer met de naam van "Smith"hebben. Deze vraag illustreert het filtreren voor om het even welke persoon van naam "Smith", die informatie van over de genestelde fragmenten terugkeert:

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

Voor alle informatie over het gebruik van de AEM GraphQL API en het configureren van de benodigde elementen kunt u verwijzen naar:

  • GraphQL leren gebruiken met AEM
  • De structuur van het voorbeeldinhoudsfragment
  • GraphQL leren gebruiken met AEM - Voorbeeldinhoud en query's

Volgende functies whats-next

Nu u hebt geleerd hoe u toegang kunt krijgen tot inhoud zonder kop en deze kunt opvragen met de AEM GraphQL API Leer hoe te om REST API te gebruiken om tot de inhoud van uw Fragments van de Inhoud toegang te hebben en bij te werken.

Aanvullende bronnen additional-resources

recommendation-more-help
19ffd973-7af2-44d0-84b5-d547b0dffee2