Få åtkomst till ditt innehåll via AEM-API:er access-your-content

I den här delen av AEM Headless Developer Journey kan du lära dig hur du använder GraphQL-frågor för att komma åt innehållet i dina innehållsfragment och skicka det till din app (headless delivery).

Story hittills story-so-far

I det föregående dokumentet från den AEM resan lärde du dig Så här modellerar du ditt innehåll grunderna i innehållsmodellering i AEM, så du bör nu förstå hur du modellerar innehållsstrukturen och sedan inse att strukturen med AEM Content Fragment Models och Content Fragments:

  • Identifiera koncept och terminologi i samband med innehållsmodellering.
  • Förstå varför innehållsmodellering behövs för leverans av Headless-innehåll.
  • Förstå hur ni kan förverkliga den här strukturen med AEM Content Fragment Models (och skapa innehåll med Content Fragments).
  • Förstå hur du modellerar innehåll, principer med grundläggande exempel.

Den här artikeln bygger på dessa grundläggande funktioner så att du förstår hur du får tillgång till ditt befintliga headless-innehåll i AEM med hjälp av det AEM GraphQL-API:t.

  • Målgrupp: Nybörjare

  • Mål: Lär dig hur du kommer åt innehållet i dina innehållsfragment med hjälp AEM GraphQL-frågor:

    • Nu kommer GraphQL och AEM GraphQL API.
    • Ta en titt på detaljerna i AEM GraphQL API.
    • Titta på några exempelfrågor för att se hur saker och ting fungerar i praktiken.

Så du vill komma åt ditt innehåll? so-youd-like-to-access-your-content

Så… du har allt det här innehållet, snyggt strukturerat (i innehållsfragment) och bara väntat på att mata din nya app. Frågan är - hur man får dit den?

Vad du behöver är ett sätt att rikta specifikt innehåll, välja vad du behöver och returnera det till appen för vidare bearbetning.

Med Adobe Experience Manager (AEM) kan du selektivt komma åt dina innehållsfragment med hjälp av det AEM GraphQL-API:t och endast returnera det innehåll du behöver. Det innebär att du kan leverera strukturerat innehåll utan extra kostnad och använda det i dina program.

NOTE
AEM GraphQL API är en anpassad implementering som baseras på GraphQL standard-API-specifikationen.

GraphQL - en introduktion graphql-introduction

GraphQL är en öppen källkodsspecifikation som innehåller:

  • ett frågespråk där du kan välja specifikt innehåll från strukturerade objekt.
  • en körningsmiljö där du kan utföra dessa frågor med ditt strukturerade innehåll.

GraphQL är ett starkt-typat API. Det innebär att allt-innehåll måste vara tydligt strukturerat och organiserat efter typ, så att GraphQL förstår vad som ska användas och hur. Datafälten definieras i GraphQL-scheman, som definierar strukturen för innehållsobjekten.

GraphQL slutpunkter innehåller sedan de sökvägar som svarar på GraphQL-frågorna.

Allt detta innebär att appen kan välja innehåll som den behöver på ett korrekt, tillförlitligt och effektivt sätt - precis vad du behöver när du använder AEM.

NOTE
Se GraphQL.org och GraphQL.com.

AEM GRAPHQL API aem-graphql-api

AEM GraphQL API är en anpassad version som baseras på GraphQL API-standardspecifikationen, som är särskilt konfigurerad för att du ska kunna utföra (komplexa) frågor på dina innehållsfragment.

Innehållsfragment används eftersom innehållet är strukturerat enligt modeller för innehållsfragment. Detta uppfyller GraphQL grundläggande krav.

  • En innehållsfragmentmodell består av ett eller flera fält.
    • Varje fält definieras enligt en datatyp.
  • Content Fragment Models används för att generera motsvarande AEM GraphQL-scheman.

För att få åtkomst till GraphQL för AEM (och innehållet) används en slutpunkt för att ange åtkomstsökvägen.

Innehållet som returneras via AEM GraphQL API kan sedan användas av dina program.

För att du ska få hjälp med direkt inmatning och testfrågor finns en implementering av standardgränssnittet GraphiQL som också kan användas med AEM GraphQL (som kan installeras med AEM). Den innehåller funktioner som syntaxmarkering, automatisk komplettering, automatisk föreslå, samt historik och onlinedokumentation.

NOTE
Implementeringen AEM GraphQL API baseras på GraphQL Java-bibliotek.

Innehållsfragment för användning med AEM GraphQL API content-fragments-use-with-aem-graphql-api

Innehållsfragment kan användas som bas för GraphQL för AEM scheman och frågor som:

  • Med dem kan du utforma, skapa, strukturera och publicera sidoberoende innehåll som kan levereras utan problem.
  • De baseras på en Content Fragment Model, som fördefinierar strukturen för det resulterande fragmentet med hjälp av ett urval datatyper.
  • Ytterligare strukturlager kan uppnås med datatypen Fragmentreferens, som är tillgänglig när du definierar en modell.

Modeller för innehållsfragment content-fragments-models

Dessa modeller för innehållsfragment:

  • Används för att generera scheman när Enabled har aktiverats.
  • Ange de datatyper och fält som krävs för GraphQL. De ser till att programmet bara begär det som är möjligt och får det som förväntas.
  • Datatypen Fragmentreferenser kan användas i modellen för att referera till ett annat innehållsfragment, vilket innebär att ytterligare strukturnivåer införs.

Fragmentreferenser fragment-references

Fragmentreferens:

  • Är en specifik datatyp tillgänglig när du definierar en innehållsfragmentmodell.

  • Refererar till ett annat fragment, beroende på en viss innehållsfragmentmodell.

  • Gör att du kan skapa och sedan hämta strukturerade data.

    • När det definieras som en multifeed kan flera delfragment refereras (hämtas) av det primära fragmentet.

JSON Preview json-preview

Om du vill ha hjälp med att designa och utveckla dina modeller för innehållsfragment kan du förhandsgranska JSON-utdata i redigeraren för innehållsfragment.

JSON Preview

Använda AEM GraphQL API actually-using-aem-graphiql

Inledande konfiguration initial-setup

Innan du börjar med frågor om ditt innehåll måste du:

Exempelstruktur sample-structure

Om du vill använda det AEM GraphQL-API:t i en fråga kan vi använda de två mycket grundläggande modellstrukturerna för innehållsfragment:

  • Företag

    • Namn - text
    • CEO (Person) - Fragmentreferens
    • Anställda (personer) - fragmentreferens(er)
  • Person

    • Namn - text
    • Förnamn - text

Som du ser refererar fälten CEO och Employees till Personfragmenten.

Fragmentmodellerna används:

  • när du skapar innehåll i Content Fragment Editor
  • för att generera de GraphQL-scheman som du ska fråga efter

Var ska du testa dina frågor? where-to-test-your-queries

Frågorna kan anges i GraphiQL-gränssnittet, till exempel:

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

Gränssnittet GraphiQL

Komma igång med frågor getting-Started-with-queries

En enkel fråga är att returnera namnet på alla poster i företagsschemat. Här begär du en lista med alla företagsnamn:

query {
  companyList {
    items {
      name
    }
  }
}

En något mer komplex fråga är att markera alla personer som inte har namnet"Jobs". Detta filtrerar alla personer för alla som inte har namnet Jobs. Detta uppnås med operatorn EQUALS_NOT (det finns många fler):

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

Du kan också skapa mer komplexa frågor. Du kan till exempel söka efter alla företag som har minst en anställd med namnet "Smith". Den här frågan visar filtrering för alla personer med namnet "Smith", vilket returnerar information från de kapslade fragmenten:

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

Mer information om hur du använder AEM GraphQL API tillsammans med de nödvändiga elementen finns i följande exempel:

  • Lär dig använda GraphQL med AEM
  • Strukturen för exempelinnehållsfragment
  • Lära sig använda GraphQL med AEM - exempelinnehåll och frågor

What's Next whats-next

Nu när du har lärt dig hur du får åtkomst till och frågar efter rubriklöst innehåll med det AEM GraphQL API kan du nu lära dig hur du använder REST API för att få åtkomst till och uppdatera innehållet i dina innehållsfragment.

Ytterligare resurser additional-resources

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