Verwenden von GraphQL mit AEM – Beispielinhalt und Abfragen

Erfahren Sie, wie Sie GraphQL mit AEM verwenden können, um Inhalte Headless bereitzustellen, indem Sie Beispielinhalte und Abfragen untersuchen.

HINWEIS

Diese Seite sollte zusammen mit folgenden Themen gelesen werden:

Für die ersten Schritte mit GraphQL-Abfragen und deren Funktionsweise mit AEM Inhaltsfragmenten ist es hilfreich, einige praktische Beispiele anzuzeigen.

Sehen Sie dazu:

GraphQL – Beispielabfragen unter Verwendung der Beispielstruktur für Inhaltsfragmente

In diesen Beispielabfragen wird das Erstellen von Abfragen zusammen mit Beispielergebnissen veranschaulicht.

HINWEIS

Je nach Instanz können Sie direkt auf die Die mit AEM GraphQL-API enthaltene Grafik-QL-Schnittstelle zum Senden und Testen von Abfragen.

Beispiel: http://localhost:4502/content/graphiql.html

HINWEIS

Beispielabfrage – Alle verfügbaren Schemata und Datentypen

Diese Beispielabfrage gibt alle types für alle verfügbaren Schemas.

Beispielabfrage

{
  __schema {
    types {
      name
      description
    }
  }
}

Beispielergebnis

{
  "data": {
    "__schema": {
      "types": [
        {
          "name": "AdventureModel",
          "description": null
        },
        {
          "name": "AdventureModelArrayFilter",
          "description": null
        },
        {
          "name": "AdventureModelFilter",
          "description": null
        },
        {
          "name": "AdventureModelResult",
          "description": null
        },
        {
          "name": "AdventureModelResults",
          "description": null
        },
        {
          "name": "AllFragmentModels",
          "description": null
        },
        {
          "name": "ArchiveRef",
          "description": null
        },
        {
          "name": "ArrayMode",
          "description": null
        },
        {
          "name": "ArticleModel",
          "description": null
        },

...more results...

        {
          "name": "__EnumValue",
          "description": null
        },
        {
          "name": "__Field",
          "description": null
        },
        {
          "name": "__InputValue",
          "description": null
        },
        {
          "name": "__Schema",
          "description": "A GraphQL Introspection defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, the entry points for query, mutation, and subscription operations."
        },
        {
          "name": "__Type",
          "description": null
        },
        {
          "name": "__TypeKind",
          "description": "An enum describing what kind of type a given __Type is"
        }
      ]
    }
  }
}

Beispielabfrage – Alle Informationen zu allen Städten

Um alle Informationen über alle Städte abzurufen, können Sie die grundlegende Abfrage verwenden:
Beispielabfrage

{
  cityList {
    items
  }
}

Bei Ausführung erweitert das System die Abfrage automatisch, um alle Felder einzuschließen:

{
  cityList {
    items {
      _path
      name
      country
      population
    }
  }
}

Beispielergebnisse

{
  "data": {
    "cityList": {
      "items": [
        {
          "_path": "/content/dam/sample-content-fragments/cities/basel",
          "name": "Basel",
          "country": "Switzerland",
          "population": 172258
        },
        {
          "_path": "/content/dam/sample-content-fragments/cities/berlin",
          "name": "Berlin",
          "country": "Germany",
          "population": 3669491
        },
        {
          "_path": "/content/dam/sample-content-fragments/cities/bucharest",
          "name": "Bucharest",
          "country": "Romania",
          "population": 1821000
        },
        {
          "_path": "/content/dam/sample-content-fragments/cities/san-francisco",
          "name": "San Francisco",
          "country": "USA",
          "population": 883306
        },
        {
          "_path": "/content/dam/sample-content-fragments/cities/san-jose",
          "name": "San Jose",
          "country": "USA",
          "population": 1026350
        },
        {
          "_path": "/content/dam/sample-content-fragments/cities/stuttgart",
          "name": "Stuttgart",
          "country": "Germany",
          "population": 634830
        },
        {
          "_path": "/content/dam/sample-content-fragments/cities/zurich",
          "name": "Zurich",
          "country": "Switzerland",
          "population": 415367
        }
      ]
    }
  }
}

Beispielabfrage – Namen aller Städte

Diese Beispielabfrage ist eine einfache Abfrage, um die namealler Einträge in citySchema.

Beispielabfrage

query {
  cityList {
    items {
      name
    }
  }
}

Beispielergebnisse

{
  "data": {
    "cityList": {
      "items": [
        {
          "name": "Basel"
        },
        {
          "name": "Berlin"
        },
        {
          "name": "Bucharest"
        },
        {
          "name": "San Francisco"
        },
        {
          "name": "San Jose"
        },
        {
          "name": "Stuttgart"
        },
        {
          "name": "Zurich"
        }
      ]
    }
  }
}

Beispielabfrage – ein Einzelstadtfragment

Diese Beispielabfrage ist eine Abfrage, um die Details eines einzelnen Fragmenteintrags an einem bestimmten Speicherort im Repository zurückzugeben.

Beispielabfrage

{
  cityByPath (_path: "/content/dam/sample-content-fragments/cities/berlin") {
    item {
      _path
      name
      country
      population
     categories
    }
  }
}

Beispielergebnisse

{
  "data": {
    "cityByPath": {
      "item": {
        "_path": "/content/dam/sample-content-fragments/cities/berlin",
        "name": "Berlin",
        "country": "Germany",
        "population": 3669491,
        "categories": [
          "city:capital",
          "city:emea"
        ]
      }
    }
  }
}

Beispielabfrage – alle Städte mit einer gegebenen Variante

Wenn Sie eine Variante mit dem Namen "Berlin Center"erstellen (berlin_centre), für die city Berlin können Sie eine Abfrage verwenden, um Details der Variante zurückzugeben.

Beispielabfrage

{
  cityList (variation: "berlin_center") {
    items {
      _path
      name
      country
      population
      categories
    }
  }
}

Beispielergebnisse

{
  "data": {
    "cityList": {
      "items": [
        {
          "_path": "/content/dam/sample-content-fragments/cities/berlin",
          "name": "Berlin",
          "country": "Germany",
          "population": 3669491,
          "categories": [
            "city:capital",
            "city:emea"
          ]
        }
      ]
    }
  }
}

Beispielabfrage – Namen aller Städte Als Städtereisen markiert

Wenn Sie:

  • Erstellen Sie verschiedene Tags namens Tourism : Business, City Break, Holiday
  • und weisen diese Tags der Übergeordneten Variante verschiedener City Instanzen

Dann können Sie eine Abfrage verwenden, um Details zu name und tags aller Einträge mit dem Tag „Städtereisen“ im Schema city herauszugeben.

Beispielabfrage

query {
  cityList(
    includeVariations: true,
    filter: {_tags: {_expressions: [{value: "tourism:city-break", _operator: CONTAINS}]}}
  ){
    items {
      name,
      _tags
    }
  }
}

Beispielergebnisse

{
  "data": {
    "cityList": {
      "items": [
        {
          "name": "Berlin",
          "_tags": [
            "tourism:city-break",
            "tourism:business"
          ]
        },
        {
          "name": "Zurich",
          "_tags": [
            "tourism:city-break",
            "tourism:business"
          ]
        }
      ]
    }
  }
}

Beispielabfrage – Vollständige Details des CEO und der Mitarbeiter einer Firma

Unter Verwendung der Struktur der verschachtelten Fragmente gibt diese Abfrage die vollständigen Details des CEO eines Unternehmens und aller seiner Mitarbeiter zurück.

Beispielabfrage

query {
  companyList {
    items {
      name
      ceo {
        _path
        name
        firstName
        awards {
        id
          title
        }
      }
      employees {
       name
        firstName
       awards {
         id
          title
        }
      }
    }
  }
}

Beispielergebnisse

{
  "data": {
    "companyList": {
      "items": [
        {
          "name": "Apple Inc.",
          "ceo": {
            "_path": "/content/dam/sample-content-fragments/persons/steve-jobs",
            "name": "Jobs",
            "firstName": "Steve",
            "awards": []
          },
          "employees": [
            {
              "name": "Marsh",
              "firstName": "Duke",
              "awards": []
            },
            {
              "name": "Caulfield",
              "firstName": "Max",
              "awards": [
                {
                  "id": "GB",
                  "title": "Gameblitz"
                }
              ]
            }
          ]
        },
        {
          "name": "Little Pony, Inc.",
          "ceo": {
            "_path": "/content/dam/sample-content-fragments/persons/adam-smith",
            "name": "Smith",
            "firstName": "Adam",
            "awards": []
          },
          "employees": [
            {
              "name": "Croft",
              "firstName": "Lara",
              "awards": [
                {
                  "id": "GS",
                  "title": "Gamestar"
                }
              ]
            },
            {
              "name": "Slade",
              "firstName": "Cutter",
              "awards": [
                {
                  "id": "GB",
                  "title": "Gameblitz"
                },
                {
                  "id": "GS",
                  "title": "Gamestar"
                }
              ]
            }
          ]
        },
        {
          "name": "NextStep Inc.",
          "ceo": {
            "_path": "/content/dam/sample-content-fragments/persons/steve-jobs",
            "name": "Jobs",
            "firstName": "Steve",
            "awards": []
          },
          "employees": [
            {
              "name": "Smith",
              "firstName": "Joe",
              "awards": []
            },
            {
              "name": "Lincoln",
              "firstName": "Abraham",
              "awards": []
            }
          ]
        }
      ]
    }
  }
}

Beispielabfrage – Alle Personen mit dem Namen „Jobs“ oder „Smith“

Diese Beispielabfrage filtert alle persons für alle, die über einen Namen verfügen Jobsoder Smith.

Beispielabfrage

query {
  personList(filter: {
    name: {
      _logOp: OR
      _expressions: [
        {
          value: "Jobs"
        },
        {
          value: "Smith"
        }
      ]
    }
  }) {
    items {
      name
      firstName
    }
  }
}

Beispielergebnisse

{
  "data": {
    "personList": {
      "items": [
        {
          "name": "Smith",
          "firstName": "Adam"
        },
        {
          "name": "Smith",
          "firstName": "Joe"
        },
        {
          "name": "Jobs",
          "firstName": "Steve"
        }
      ]
    }
  }
}

Beispielabfrage – Alle Personen, die nicht den Namen „Jobs“ haben

Diese Beispielabfrage filtert alle persons für alle, die über einen Namen verfügen Jobsoder Smith.

Beispielabfrage

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

Beispielergebnisse

{
  "data": {
    "personList": {
      "items": [
        {
          "name": "Lincoln",
          "firstName": "Abraham"
        },
        {
          "name": "Smith",
          "firstName": "Adam"
        },
        {
          "name": "Slade",
          "firstName": "Cutter"
        },
        {
          "name": "Marsh",
          "firstName": "Duke"
        },
        {
          "name": "Smith",
          "firstName": "Joe"
        },
        {
          "name": "Croft",
          "firstName": "Lara"
        },
        {
          "name": "Caulfield",
          "firstName": "Max"
        }
      ]
    }
  }
}

Beispielabfrage – Alle Abenteuer, deren _path mit einem bestimmten Präfix beginnt

Alle adventures, bei denen _path mit einem bestimmten Präfix (/content/dam/wknd/en/adventures/cycling) beginnt.

Beispielabfrage

query {
  adventureList(
    filter: {
      _path: {
        _expressions: [
        {
          value: "/content/dam/wknd/en/adventures/cycling"
         _operator: STARTS_WITH
        }]
       }
    })
    {
    items {
      _path
    }
  }
}

Beispielergebnisse

{
  "data": {
    "adventureList": {
      "items": [
        {
          "_path": "/content/dam/wknd/en/adventures/cycling-southern-utah/cycling-southern-utah"
        },
        {
          "_path": "/content/dam/wknd/en/adventures/cycling-tuscany/cycling-tuscany"
        }
      ]
    }
  }
}

Beispielabfrage - Alle Städte in Deutschland oder der Schweiz mit einer Bevölkerung von 400000 bis 999999

Hier wird eine Kombination von Feldern gefiltert. Ein AND (implizit) wird verwendet, um den population-Bereich auszuwählen, während ein OR (explizit) zur Auswahl der erforderlichen Städte verwendet wird.

Beispielabfrage

query {
  cityList(filter: {
    population: {
      _expressions: [
        {
          value: 400000
          _operator: GREATER_EQUAL
        }, {
          value: 1000000
          _operator: LOWER
        }
      ]
    },
    country: {
      _logOp: OR
      _expressions: [
        {
          value: "Germany"
        }, {
          value: "Switzerland"
        }
      ]
    }
  }) {
    items {
      name
      population
      country
    }
  }
}

Beispielergebnisse

{
  "data": {
    "cityList": {
      "items": [
        {
          "name": "Stuttgart",
          "population": 634830,
          "country": "Germany"
        },
        {
          "name": "Zurich",
          "population": 415367,
          "country": "Switzerland"
        }
      ]
    }
  }
}

Beispielabfrage – Alle Städte mit SAN im Namen, unabhängig von der Groß-/Kleinschreibung

Diese Abfrage durchsucht alle Städte mit SAN im Namen, unabhängig von der Groß-/Kleinschreibung.

Beispielabfrage

query {
  cityList(filter: {
    name: {
      _expressions: [
        {
          value: "SAN"
          _operator: CONTAINS
          _ignoreCase: true
        }
      ]
    }
  }) {
    items {
      name
      population
      country
    }
  }
}

Beispielergebnisse

{
  "data": {
    "cityList": {
      "items": [
        {
          "name": "San Francisco",
          "population": 883306,
          "country": "USA"
        },
        {
          "name": "San Jose",
          "population": 1026350,
          "country": "USA"
        }
      ]
    }
  }
}

Beispielabfrage – Filtern eines Arrays nach einem Element, das mindestens einmal vorkommen muss

Diese Abfrage filtert ein Array nach einem Element (city:na), das mindestens einmal vorkommen muss.

Beispielabfrage

query {
  cityList(filter: {
    categories: {
      _expressions: [
        {
          value: "city:na"
          _apply: AT_LEAST_ONCE
        }
      ]
    }
  }) {
    items {
      name
      population
      country
      categories
    }
  }
}

Beispielergebnisse

{
  "data": {
    "cityList": {
      "items": [
        {
          "name": "San Francisco",
          "population": 883306,
          "country": "USA",
          "categories": [
            "city:beach",
            "city:na"
          ]
        },
        {
          "name": "San Jose",
          "population": 1026350,
          "country": "USA",
          "categories": [
            "city:na"
          ]
        }
      ]
    }
  }
}

Beispielabfrage – Filtern nach einem exakten Array-Wert

Diese Abfrage filtert nach einem exakten Array-Wert.

Beispielabfrage

query {
  cityList(filter: {
    categories: {
      _expressions: [
        {
          values: [
            "city:beach",
            "city:na"
          ]
        }
      ]
    }
  }) {
    items {
      name
      population
      country
      categories
    }
  }
}

Beispielergebnisse

{
  "data": {
    "cityList": {
      "items": [
        {
          "name": "San Francisco",
          "population": 883306,
          "country": "USA",
          "categories": [
            "city:beach",
            "city:na"
          ]
        }
      ]
    }
  }
}

Beispielabfrage für verschachtelte Inhaltsfragmente – Alle Unternehmen mit mindestens einem Mitarbeiter mit dem Namen „Smith“

Diese Abfrage veranschaulicht die Filterung nach person von name „Smith“, wobei Informationen aus zwei verschachtelten Fragmenten – company und employee – zurückgegeben werden.

Beispielabfrage

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

Beispielergebnisse

{
  "data": {
    "companyList": {
      "items": [
        {
          "name": "NextStep Inc.",
          "ceo": {
            "name": "Jobs",
            "firstName": "Steve"
          },
          "employees": [
            {
              "name": "Smith",
              "firstName": "Joe"
            },
            {
              "name": "Lincoln",
              "firstName": "Abraham"
            }
          ]
        }
      ]
    }
  }
}

Beispielabfrage für verschachtelte Inhaltsfragmente – Alle Unternehmen, bei denen alle Mitarbeiter die Auszeichnung „Gamestar“ erhalten haben

Diese Abfrage veranschaulicht die Filterung von drei verschachtelten Fragmenten – company, employee und award.

Beispielabfrage

query {
  companyList(filter: {
    employees: {
      _apply: ALL
      _match: {
        awards: {
          _match: {
            id: {
              _expressions: [
                {
                  value: "GS"
                  _operator:EQUALS
                }
              ]
            }
          }
        }
      }
    }
  }) {
    items {
      name
      ceo {
        name
        firstName
      }
      employees {
        name
        firstName
        awards {
          id
          title
        }
      }
    }
  }
}

Beispielergebnisse

{
  "data": {
    "companyList": {
      "items": [
        {
          "name": "Little Pony, Inc.",
          "ceo": {
            "name": "Smith",
            "firstName": "Adam"
          },
          "employees": [
            {
              "name": "Croft",
              "firstName": "Lara",
              "awards": [
                {
                  "id": "GS",
                  "title": "Gamestar"
                }
              ]
            },
            {
              "name": "Slade",
              "firstName": "Cutter",
              "awards": [
                {
                  "id": "GB",
                  "title": "Gameblitz"
                },
                {
                  "id": "GS",
                  "title": "Gamestar"
                }
              ]
            }
          ]
        }
      ]
    }
  }
}

Beispielabfrage für Metadaten – Liste der Metadaten für Auszeichnungen mit dem Titel „GB“

Diese Abfrage veranschaulicht die Filterung von drei verschachtelten Fragmenten – company, employee und award.

Beispielabfrage

query {
  awardList(filter: {
      id: {
        _expressions: [
          {
            value:"GB"
          }
        ]
    }
  }) {
    items {
      _metadata {
        stringMetadata {
          name,
          value
        }
      }
      id
      title
    }
  }
}

Beispielergebnisse

{
  "data": {
    "awardList": {
      "items": [
        {
          "_metadata": {
            "stringMetadata": [
              {
                "name": "title",
                "value": "Gameblitz Award"
              },
              {
                "name": "description",
                "value": ""
              }
            ]
          },
          "id": "GB",
          "title": "Gameblitz"
        }
      ]
    }
  }
}

Beispielabfragen unter Verwendung des WKND-Projekts

Diese Beispielabfragen basieren auf dem WKND-Projekt. Sie hat Folgendes:

  • Inhaltsfragmentmodelle verfügbar unter:
    http://<hostname>:<port>/libs/dam/cfm/models/console/content/models.html/conf/wknd

  • Inhaltsfragmente (und anderere Inhalte) verfügbar unter:
    http://<hostname>:<port>/assets.html/content/dam/wknd/en

HINWEIS

Da die Ergebnisse umfangreich sein können, werden sie hier nicht reproduziert.

Beispielabfrage für alle Inhaltsfragmente eines bestimmten Modells mit den angegebenen Eigenschaften

Diese Beispielabfrage untersucht:

  • Alle Inhaltsfragmente vom Typ article
  • Mit den Eigenschaften pathund author.

Beispielabfrage

{
  articleList {
    items {
      _path
      author
    }
  }
}

Beispielabfrage für Metadaten

Diese Abfrage untersucht:

  • Alle Inhaltsfragmente vom Typ adventure
  • Metadaten

Beispielabfrage

{
  adventureList {
    items {
      _path,
      _metadata {
        stringMetadata {
          name,
          value
        }
        stringArrayMetadata {
          name,
          value
        }
        intMetadata {
          name,
          value
        }
        intArrayMetadata {
          name,
          value
        }
        floatMetadata {
          name,
          value
        }
        floatArrayMetadata {
          name,
          value
        }
        booleanMetadata {
          name,
          value
        }
        booleanArrayMetadata {
          name,
          value
        }
        calendarMetadata {
          name,
          value
        }
        calendarArrayMetadata {
          name,
          value
        }
      }
    }
  }
}

Beispielabfrage für ein einzelnes Inhaltsfragment eines bestimmten Modells

Diese Beispielabfrage untersucht:

  • Ein einzelnes Inhaltsfragment vom Typ article an einem bestimmten Pfad
    • innerhalb dieses Pfads alle Inhaltsformate:
      • HTML
      • Markdown
      • Nur Text
      • JSON

Beispielabfrage

{
  articleByPath (_path: "/content/dam/wknd/en/magazine/alaska-adventure/alaskan-adventures") {
    item {
        _path
        author
        main {
          html
          markdown
          plaintext
          json
        }
    }
  }
}

Beispielabfrage für ein Inhaltsfragmentmodell anhand eines Modells

Diese Beispielabfrage untersucht:

  • Für ein einzelnes Inhaltsfragment
    • Details des zugrunde liegenden Inhaltsfragmentmodells

Beispielabfrage

{
  adventureByPath(_path: "/content/dam/wknd/en/adventures/riverside-camping-australia/riverside-camping-australia") {
    item {
      _path
      adventureTitle
      _model {
        _path
        title
      }
    }
  }
}

Beispielabfrage für ein verschachteltes Inhaltsfragment – Typ mit einem einzigen Modell

Diese Abfrage untersucht:

  • Ein einzelnes Inhaltsfragment vom Typ article an einem bestimmten Pfad
    • in diesem Pfad den Pfad und den Autor des referenzierten (verschachtelten) Fragments
HINWEIS

Das Feld referencearticle hat den Datentyp fragment-reference.

Beispielabfrage

{
  adventureByPath(_path: "/content/dam/wknd-shared/en/magazine/western-australia/western-australia-by-camper-van") {
    item {
      _path
      title
      _model {
        _path
        title
      }
    }
  }
}

Beispielabfrage für ein verschachteltes Inhaltsfragment – Typ mit mehreren Modellen

Einzelner referenzierter Modelltyp

Diese Abfrage untersucht:

  • Mehrere Inhaltsfragmente vom Typ bookmark
    • mit Fragmentverweisen auf andere Fragmente des spezifischen Modelltyps Article
HINWEIS

Das Feld fragments hat den Datentyp fragment-referencemit dem Modell Article ausgewählt ist. Abfrage liefert fragments als Array von [Article].

{
  bookmarkList {
    items {
        fragments {
          _path
          author
        }
     }
  }
}

Mehrere referenzierte Modelltypen

Diese Abfrage untersucht:

  • Mehrere Inhaltsfragmente vom Typ bookmark
    • Mit Fragmentreferenzen auf andere Fragmente der spezifischen Modelltypen Article und Adventure
HINWEIS

Das Feld fragments hat den Datentyp fragment-reference, wobei die Modelle Article, Adventure ausgewählt sind. Abfrage liefert fragments als Array von [AllFragmentModels], der vom Vereinigungstyp ausgeschlossen wird.

{
  bookmarkList {
    items {
        fragments {
          ... on ArticleModel {
            _path
            author
          }
          ... on AdventureModel {
            _path
            adventureTitle
          }
        }
     }
  }
}

Beispielabfrage für ein Inhaltsfragment eines bestimmten Modells mit Inhaltsreferenzen

Es gibt zwei Varianten dieser Abfrage:

  1. Zurückgeben aller Inhaltsreferenzen.
  2. Zurückgeben der spezifischen Inhaltsreferenzen vom Typ attachments.

Diese Abfragen untersuchen:

  • Mehrere Inhaltsfragmente vom Typ bookmark
    • Mit Inhaltsreferenzen auf andere Fragmente.

Beispielabfrage für mehrere Inhaltsfragmente mit vorab abgerufenen Verweisen

Die folgende Abfrage gibt alle Inhaltsreferenzen mit _references zurück:

{
  bookmarkList {
     _references {
         ... on ImageRef {
          _path
          type
          height
        }
        ... on MultimediaRef {
          _path
          type
          size
        }
        ... on DocumentRef {
          _path
          type
          author
        }
        ... on ArchiveRef {
          _path
          type
          format
        }
    }
    items {
        _path
    }
  }
}

Beispielabfrage für mehrere Inhaltsfragmente mit Anhängen

Die folgende Abfrage gibt alle attachments - ein spezifisches Feld (Untergruppe) des Typs content-reference:

HINWEIS

Das Feld attachments hat den Datentyp content-reference, wobei verschiedene Formen ausgewählt sind.

{
  bookmarkList {
    items {
      attachments {
        ... on PageRef {
          _path
          type
        }
        ... on ImageRef {
          _path
          width
        }
        ... on MultimediaRef {
          _path
          size
        }
        ... on DocumentRef {
          _path
          author
        }
        ... on ArchiveRef {
          _path
          format
        }
      }
    }
  }
}

Beispielabfrage für ein einzelnes Inhaltsfragment mit RTE-Inline-Verweis

Diese Abfrage untersucht:

  • Ein einzelnes Inhaltsfragment vom Typ bookmark an einem bestimmten Pfad
    • Darin die RTE-Inline-Verweise
HINWEIS

Die RTE-Inline-Verweise werden in _references realisiert.

Beispielabfrage

{
  bookmarkByPath(_path: "/content/dam/wknd/en/bookmarks/skitouring") {
    item {
      _path
      description {
        json
      }
    }
    _references {
      ... on ArticleModel {
        _path
      }
      ... on AdventureModel {
        _path
      }
      ... on ImageRef {
        _path
      }
      ... on MultimediaRef {
        _path
      }
      ... on DocumentRef {
        _path
      }
      ... on ArchiveRef {
        _path
      }
    }
  }
}

Beispielabfrage für eine einzelne Variante eines Inhaltsfragments eines bestimmten Modells

Diese Abfrage untersucht:

  • Ein einzelnes Inhaltsfragment vom Typ article an einem bestimmten Pfad
    • innerhalb dieses Pfads die mit der Variante zusammenhängenden Daten: variation1

Beispielabfrage

{
  articleByPath (_path: "/content/dam/wknd/en/magazine/alaska-adventure/alaskan-adventures", variation: "variation1") {
    item {
      _path
      author
      main {
        html
        markdown
        plaintext
        json
      }
    }
  }
}

Beispielabfrage für eine gegebene Variante mehrerer Inhaltsfragmente eines bestimmten Modells

Diese Abfrage untersucht:

  • Inhaltsfragmente vom Typ article mit einer bestimmten Variante: variation1

Beispielabfrage

{
  articleList (variation: "variation1") {
    items {
      _path
      author
      main {
        html
        markdown
        plaintext
        json
      }
    }
  }
}

Beispielabfrage für mehrere Inhaltsfragmente und deren Varianten eines bestimmten Modells

Diese Abfrage untersucht:

  • für Inhaltsfragmente vom Typ article und alle Varianten

Beispielabfrage

query {
  articleList(
    includeVariations: true  ){
    items {
      _variation
      _path
      _tags
      _metadata {
        stringArrayMetadata {
          name
          value
        }
      }
    }
  }
}

Beispielabfrage für Inhaltsfragmentvarianten eines bestimmten Modells, an das ein bestimmtes Tag angehängt ist

Diese Abfrage untersucht:

  • für Inhaltsfragmente vom Typ article mit einer oder mehreren Varianten mit dem Tag WKND : Activity / Hiking

Beispielabfrage

{
  articleList(
    includeVariations: true,
    filter: {_tags: {_expressions: [{value: "wknd:activity/hiking", _operator: CONTAINS}]}}
  ){
    items {
      _variation
      _path
      _tags
      _metadata {
        stringArrayMetadata {
          name
          value
        }
      }
    }
  }
}

Beispielabfrage für mehrere Inhaltsfragmente eines bestimmten Gebietsschemas

Diese Abfrage untersucht:

  • Inhaltsfragmente vom Typ article innerhalb des Gebietsschemas fr

Beispielabfrage

{
  articleList (_locale: "fr") {
    items {
      _path
      author
      main {
        html
        markdown
        plaintext
        json
      }
    }
  }
}

Die Struktur des Beispielinhaltsfragments (verwendet mit GraphQL)

Die Abfragen basieren auf der folgenden Struktur, die Folgendes verwendet:

Beispielmodelle für Inhaltsfragmente (Schemata)

Verwenden Sie für die Beispielabfragen die folgenden Inhaltsmodelle und ihre Beziehungen (Referenzen ->):

Person
Auszeichnung

Unternehmen

Die grundlegenden Felder, die das Unternehmen definieren, sind:

Feldname Datentyp Verweis
Unternehmensname Einzelzeilentext
CEO Fragmentreferenz (Einzelfeld) Person
Mitarbeiter Fragmentreferenz (Mehrfeld) Person

Person

Die Felder, die eine Person definieren, die auch ein Mitarbeiter sein kann:

Feldname Datentyp Verweis
Name Einzelzeilentext
Vorname Einzelzeilentext
Auszeichnungen Fragmentreferenz (Mehrfeld) Auszeichnung

Auszeichnung

Die Felder, die eine Auszeichnung definieren, sind:

Feldname Datentyp Verweis
Kürzel/Kennung Einzelzeilentext
Titel Einzelzeilentext

Stadt

Die Felder zur Definition einer Stadt sind:

Feldname Datentyp Verweis
Name Einzelzeilentext
Land Einzelzeilentext
Einwohnerzahl Zahl
Kategorien Tags

Beispielinhaltsfragmente

Die folgenden Fragmente werden für das entsprechende Modell verwendet.

Unternehmen

Unternehmensname CEO Mitarbeiter
Apple Steve Jobs Duke Marsh
Max Caulfield
Little Pony Inc. Adam Smith Lara Croft
Cutter Slade
NextStep Inc. Steve Jobs Joe Smith
Abe Lincoln

Person

Name Vorname Auszeichnungen
Lincoln Abe
Smith Adam
Slade Cutter Gameblitz
Gamestar
Marsh Duke
Smith Joe
Croft Lara Gamestar
Caulfield Maximal Gameblitz
Aufträge Steve

Auszeichnung

Kürzel/Kennung Titel
GB Gameblitz
GS Gamestar
OSC Oscar

Stadt

Name Land Einwohnerzahl Kategorien
Basel Schweiz 172258 city:emea
Berlin Deutschland 3669491 city:capital
city:emea
Bukarest Rumänien 1821000 city:capital
city:emea
San Francisco USA 883306 city:beach
city:na
San José USA 102635 city:na
Stuttgart Deutschland 634830 city:emea
Zürich Schweiz 415367 city:capital
city:emea

Auf dieser Seite