Imparare a utilizzare GraphQL con AEM: contenuto di esempio e query learn-graphql-with-aem-sample-content-queries

Scopri come utilizzare GraphQL con AEM per distribuire contenuti headless esplorando contenuti e query di esempio.

Per iniziare a utilizzare le query GraphQL e a come funzionano con i frammenti di contenuto AEM, è utile visualizzare alcuni esempi pratici.

Per assistenza, consulta:

GraphQL: query di esempio con l’utilizzo della struttura dei frammenti di contenuto di esempio graphql-sample-queries-sample-content-fragment-structure

Approfondisci queste query di esempio per le illustrazioni di creazione query, insieme ai risultati di esempio.

NOTE
A seconda dell’istanza, puoi accedere direttamente al Interfaccia GraphiQL inclusa con API GraphQL AEM per l’invio e la verifica delle query.
Esempio: http://localhost:4502/content/graphiql.html

Query di esempio: tutti gli schemi e i tipi di dati disponibili sample-all-schemes-datatypes

Questa query di esempio restituisce tutti types per tutti gli schemi disponibili.

Query di esempio

{
  __schema {
    types {
      name
      description
    }
  }
}

Risultato di esempio

{
  "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"
        }
      ]
    }
  }
}

Query di esempio: tutte le informazioni su tutte le città sample-all-information-all-cities

Per recuperare tutte le informazioni su tutte le città, puoi utilizzare la query di base:
Query di esempio

{
  cityList {
    items
  }
}

Quando viene eseguita, il sistema espande automaticamente la query per includere tutti i campi:

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

Risultati di esempio

{
  "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
        }
      ]
    }
  }
}

Query di esempio: nomi di tutte le città sample-names-all-cities

Questa query di esempio è una query semplice che restituisce namedi tutte le voci nella cityschema.

Query di esempio

query {
  cityList {
    items {
      name
    }
  }
}

Risultati di esempio

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

Query di esempio: un singolo frammento di città specifico sample-single-specific-city-fragment

Questa query di esempio è una query che restituisce i dettagli di una singola voce di frammento in una posizione specifica nell’archivio.

Query di esempio

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

Risultati di esempio

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

Query di esempio: tutte le città con una variante denominata sample-cities-named-variation

Se crei una variante denominata "Berlino centro" (berlin_centre), per city Berlino, puoi utilizzare una query per restituire i dettagli della variante.

Query di esempio

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

Risultati di esempio

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

Query di esempio: nomi di tutte le città Taggato come City Breaks sample-names-all-cities-tagged-city-breaks

Se:

  • crea vari tag, denominati Tourism : Business, City Break, Holiday
  • e assegnano questi tag alla variante principale di vari City istanze

Quindi puoi utilizzare una query per restituire i dettagli del name e tagsdi tutte le voci contrassegnate come interruzioni di città nel cityschema.

Query di esempio

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

Risultati di esempio

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

Query di esempio: dettagli completi del CEO e dei dipendenti di un’azienda sample-full-details-company-ceos-employees

Utilizzando la struttura dei frammenti nidificati, questa query restituisce tutti i dettagli del CEO e di tutti i dipendenti di una società.

Query di esempio

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

Risultati di esempio

{
  "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": []
            }
          ]
        }
      ]
    }
  }
}

Query di esempio: tutte le persone con nome “Jobs” o “Smith” sample-all-persons-jobs-smith

Questa query di esempio filtra tutti persons per qualsiasi che ha il nome Jobso Smith.

Query di esempio

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

Risultati di esempio

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

Query di esempio: tutte le persone che non hanno nome “Jobs” sample-all-persons-not-jobs

Questa query di esempio filtra tutti persons per qualsiasi che ha il nome Jobso Smith.

Query di esempio

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

Risultati di esempio

{
  "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"
        }
      ]
    }
  }
}

Query di esempio: tutte le avventure il cui _path inizia con un prefisso specifico sample-wknd-all-adventures-cycling-path-filter

Tutte le adventures il cui _path inizia con un prefisso specifico (/content/dam/wknd/en/adventures/cycling).

Query di esempio

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

Risultati di esempio

{
  "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"
        }
      ]
    }
  }
}

Query di esempio: tutte le città in Germania o Svizzera con una popolazione da 400000 a 999999 sample-all-cities-d-ch-population

In questo caso, viene filtrata una combinazione di campi. Viene utilizzato un AND (implicito) per selezionare l’intervallo di population, mentre un OR (esplicito) viene utilizzato per selezionare le città richieste.

Query di esempio

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
    }
  }
}

Risultati di esempio

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

Query di esempio: tutte le città con SAN nel nome, indipendentemente dalla maiuscola sample-all-cities-san-ignore-case

Questa query interroga tutte le città che hanno SAN nel nome, indipendentemente dalla maiuscola.

Query di esempio

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

Risultati di esempio

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

Query di esempio: filtro su un array con un elemento che deve verificarsi almeno una volta sample-array-item-occur-at-least-once

Questa query filtra un array con un elemento (city:na) che deve verificarsi almeno una volta.

Query di esempio

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

Risultati di esempio

{
  "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"
          ]
        }
      ]
    }
  }
}

Query di esempio: filtro su un valore di array esatto sample-array-exact-value

Questa query filtra un determinato valore di array.

Query di esempio

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

Risultati di esempio

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

Query di esempio per frammenti di contenuto nidificato: tutte le società con almeno un dipendente che ha nome “Smith” sample-companies-employee-smith

Questa query illustra il filtro per qualsiasi person di name “Smith” e restituisce informazioni da due frammenti nidificati, company e employee.

Query di esempio

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

Risultati di esempio

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

Query di esempio per frammenti di contenuto nidificato: tutte le aziende in cui tutti i dipendenti hanno vinto il premio “Gamestar” sample-all-companies-employee-gamestar-award

Questa query illustra il filtraggio su tre frammenti nidificati: company, employee e award.

Query di esempio

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
        }
      }
    }
  }
}

Risultati di esempio

{
  "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"
                }
              ]
            }
          ]
        }
      ]
    }
  }
}

Esempio di query per metadati: elenco dei metadati per i riconoscimenti denominati GB sample-metadata-awards-gb

Questa query illustra il filtraggio su tre frammenti nidificati: company, employee e award.

Query di esempio

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

Risultati di esempio

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

Query di esempio con il progetto WKND sample-queries-using-wknd-project

Queste query di esempio si basano sul progetto WKND. Presenta le seguenti caratteristiche:

  • Modelli di Frammento di contenuto disponibili in:
    http://<hostname>:<port>/libs/dam/cfm/models/console/content/models.html/conf/wknd

  • Frammenti di contenuto (e altro contenuto) disponibili in:
    http://<hostname>:<port>/assets.html/content/dam/wknd/en

NOTE
Poiché i risultati possono essere estesi, non vengono riprodotti qui.

Query di esempio per tutti i Frammenti di contenuto di un determinato modello con le proprietà specificate sample-wknd-all-model-properties

Questa query di esempio rappresenta un’interrogazione per ottenere:

  • per tutti i Frammenti di contenuto di tipo article
  • con proprietà path e author.

Query di esempio

{
  articleList {
    items {
      _path
      author
    }
  }
}

Query di esempio per metadati sample-wknd-metadata

Questa query rappresenta un’interrogazione per ottenere:

  • per tutti i frammenti di contenuto di tipo adventure
  • metadati

Query di esempio

{
  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
        }
      }
    }
  }
}

Query di esempio per un singolo Frammento di contenuto di un modello specificato sample-wknd-single-content-fragment-of-given-model

Questa query di esempio rappresenta un’interrogazione per ottenere:

  • per un singolo frammento di contenuto di tipo article in un percorso specifico

    • all’interno del percorso, tutti i formati di contenuto:

      • HTML
      • Markdown
      • Testo normale
      • JSON

Query di esempio

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

Query di esempio per un modello per frammenti di contenuto derivante da un modello sample-wknd-content-fragment-model-from-model

Questa query di esempio rappresenta un’interrogazione per ottenere:

  • un singolo frammento di contenuto
    • dettagli del modello per frammenti di contenuto sottostante

Query di esempio

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

Query di esempio per un frammento di contenuto nidificato: tipo di modello singolo sample-wknd-nested-fragment-single-model

Questa query rappresenta un’interrogazione per ottenere:

  • un singolo frammento di contenuto di tipo article in un percorso specifico
    • all’interno di tale percorso, il percorso e l’autore del frammento (nidificato) a cui si fa riferimento
NOTE
Il campo referencearticle include il tipo di dati fragment-reference.

Query di esempio

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

Query di esempio per un frammento di contenuto nidificato: più tipi di modello sample-wknd-nested-fragment-multiple-model

Tipo di modello a riferimento singolo

Questa query rappresenta un’interrogazione per ottenere:

  • più frammenti di contenuto di tipo bookmark
    • con riferimenti ai frammenti per altri frammenti del tipo di modello specifico Article
NOTE
Il campo fragments ha il tipo di dati fragment-reference, con il modello Article selezionato. Consegne di query fragments come array di [Article].
{
  bookmarkList {
    items {
        fragments {
          _path
          author
        }
     }
  }
}

Più tipi di modello a cui si fa riferimento

Questa query rappresenta un’interrogazione per ottenere:

  • più frammenti di contenuto di tipo bookmark
    • con riferimenti ai frammenti per altri frammenti di tipi di modello specifici Article e Adventure
NOTE
Il campo fragments include il tipo di dati fragment-reference, con i modelli Article, Adventure selezionati. Consegne di query fragments come array di [AllFragmentModels], a cui viene fatto riferimento con il tipo di unione.
{
  bookmarkList {
    items {
        fragments {
          ... on ArticleModel {
            _path
            author
          }
          ... on AdventureModel {
            _path
            adventureTitle
          }
        }
     }
  }
}

Query di esempio per un frammento di contenuto di un modello specifico con riferimenti ai contenuti sample-wknd-fragment-specific-model-content-reference

Sono disponibili due tipi di questa query:

  1. Per restituire tutti i riferimenti ai contenuti.
  2. Per restituire riferimenti a contenuti specifici di tipo attachments.

Tali query rappresentano interrogazioni per ottenere:

  • più frammenti di contenuto di tipo bookmark
    • con riferimenti ai contenuti per altri frammenti

Query di esempio per più frammenti di contenuto con riferimenti di prelettura sample-wknd-multiple-fragments-prefetched-references

La query seguente restituisce tutti i riferimenti di contenuto utilizzando _references:

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

Query di esempio per più frammenti di contenuto con allegati sample-wknd-multiple-fragments-attachments

La query seguente restituisce tutti attachments - un campo specifico (sottogruppo) di tipo content-reference:

NOTE
Il campo attachments include il tipo di dati content-reference, con diversi moduli selezionati.
{
  bookmarkList {
    items {
      attachments {
        ... on PageRef {
          _path
          type
        }
        ... on ImageRef {
          _path
          width
        }
        ... on MultimediaRef {
          _path
          size
        }
        ... on DocumentRef {
          _path
          author
        }
        ... on ArchiveRef {
          _path
          format
        }
      }
    }
  }
}

Query di esempio per un singolo frammento di contenuto con riferimento dell’editor Rich Text in linea sample-wknd-single-fragment-rte-inline-reference

Questa query rappresenta un’interrogazione per ottenere:

  • un singolo frammento di contenuto di tipo bookmark in un percorso specifico
    • all’interno del quale, sono presenti riferimenti dell’editor Rich Text in linea
NOTE
I riferimenti dell’editor Rich Text in linea vengono popolati in _references.

Query di esempio

{
  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
      }
    }
  }
}

Query di esempio per una singola variante di frammento di contenuto di un determinato modello sample-wknd-single-fragment-given-model

Questa query rappresenta un’interrogazione per ottenere:

  • un singolo frammento di contenuto di tipo article in un percorso specifico
    • all’interno di tale percorso, i dati relativi alla variante: variation1

Query di esempio

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

Query di esempio per una variante denominata di più frammenti di contenuto di un determinato modello sample-wknd-variation-multiple-fragment-given-model

Questa query rappresenta un’interrogazione per ottenere:

  • frammenti di contenuto di tipo article con una variante specifica: variation1

Query di esempio

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

Query di esempio per più frammenti di contenuto e relative varianti di un determinato modello sample-wknd-multiple-fragment-variations-given-model

Questa query rappresenta un’interrogazione:

  • frammenti di contenuto di tipo article e tutte le varianti

Query di esempio

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

Query di esempio per le varianti di frammenti di contenuto di un determinato modello a cui è associato un tag specifico sample-wknd-fragment-variations-given-model-specific-tag

Questa query rappresenta un’interrogazione:

  • frammenti di contenuto di tipo article con una o più varianti contrassegnate dal tag WKND : Activity / Hiking

Query di esempio

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

Query di esempio per più frammenti di contenuto di una determinata lingua sample-wknd-multiple-fragments-given-locale

Questa query rappresenta un’interrogazione per ottenere:

  • frammenti di contenuto di tipo article all’interno della lingua fr

Query di esempio

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

Struttura di esempio dei frammenti di contenuto (utilizzata con GraphQL) content-fragment-structure-graphql

Le query di esempio si basano sulla seguente struttura, che utilizza:

Modelli per frammenti di contenuto di esempio (schemi) sample-content-fragment-models-schemas

Per le query di esempio, utilizza i seguenti modelli di contenuto e le relative interrelazioni (riferimenti ->):

Azienda model-company

I campi di base che definiscono l’azienda sono:

Nome campo
Tipo di dati
Riferimento
Nome dell’azienda
Testo su riga singola
CEO
Riferimento frammento (singolo)
Persona
Dipendenti
Riferimento frammento (con più campi)
Persona

Persona model-person

I campi che definiscono un’utente, che può anche essere un dipendente:

Nome campo
Tipo di dati
Riferimento
Nome
Testo su riga singola
Nome
Testo su riga singola
Premi
Riferimento frammento (con più campi)
Riconoscimento

Riconoscimento model-award

I campi che definiscono un riconoscimento sono:

Nome campo
Tipo di dati
Riferimento
Scelta rapida/ID
Testo su riga singola
Titolo
Testo su riga singola

Città model-city

I campi per la definizione di una città sono:

Nome campo
Tipo di dati
Riferimento
Nome
Testo su riga singola
Paese
Testo su riga singola
Popolazione
Numero
Categorie
Tag

Frammenti di contenuto di esempio sample-content-fragments

I frammenti seguenti vengono utilizzati per il modello appropriato.

Azienda fragment-company

Nome dell’azienda
CEO
Dipendenti
Apple
Steve Jobs
Duke Marsh
Max Caulfield
Little Pony Inc.
Adam Smith
Lara Croft
Cutter Slade
NextStep Inc.
Steve Jobs
Joe Smith
Abe Lincoln

Persona fragment-person

Nome
Nome
Premi
Lincoln
Abe
Smith
Adam
Slade
Cutter
Gameblitz
Gamestar
Marsh
Duke
Smith
Joe
Croft
Lara
Gamestar
Caulfield
Max
Gameblitz
Jobs
Steve

Riconoscimento fragment-award

Scelta rapida/ID
Titolo
GB
Gameblitz
GS
Gamestar
OSC
Oscar

Città fragment-city

Nome
Paese
Popolazione
Categorie
Basilea
Svizzera
172258
city:emea
Berlino
Germania
3669491
city:capital
city:emea
Bucarest
Romania
1821000
city:capital
city:emea
San Francisco
USA
883306
city:beach
city:na
San Jose
USA
102635
city:na
Stoccarda
Germania
634830
city:emea
Zurigo
Svizzera
415367
city:capital
city:emea
recommendation-more-help
19ffd973-7af2-44d0-84b5-d547b0dffee2