Imparare a utilizzare GraphQL con AEM: contenuto di esempio e query

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

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

NOTA

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

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à

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à

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

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

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

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

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”

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”

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

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

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

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

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

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”

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”

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

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

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

NOTA

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

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

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

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

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

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
NOTA

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

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
NOTA

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
NOTA

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

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

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

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

NOTA

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

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
NOTA

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

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

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

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

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

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)

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

Modelli per frammenti di contenuto di esempio (schemi)

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

Azienda

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

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

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à

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

I frammenti seguenti vengono utilizzati per il modello appropriato.

Azienda

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

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

Riconoscimento

Scelta rapida/ID Titolo
GB Gameblitz
GS Gamestar
OSC Oscar

Città

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

In questa pagina