Att lära sig använda GraphQL med AEM - exempelinnehåll och frågor

Lär dig använda GraphQL med AEM för att leverera innehåll utan problem genom att utforska exempelinnehåll och frågor.

Om du vill komma igång med GraphQL-frågor och hur de fungerar med AEM innehållsfragment kan du se några praktiska exempel.

Mer information finns i:

GraphQL - Exempelfrågor med strukturen för exempelinnehållsfragment

I de här exempelfrågorna finns illustrationer av hur du skapar frågor, tillsammans med exempelresultat.

OBSERVERA

Beroende på din instans kan du komma åt GraphiQL-gränssnittet ingår i AEM GraphQL API för att skicka och testa frågor.

Till exempel: http://localhost:4502/content/graphiql.html

Exempelfråga - Alla tillgängliga scheman och datatyper

Detta returnerar alla types för alla tillgängliga scheman.

Exempelfråga

{
  __schema {
    types {
      name
      description
    }
  }
}

Provresultat

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

Exempelfråga - All information om alla städer

Om du vill hämta all information om alla städer kan du använda den grundläggande frågan:
Exempelfråga

{
  cityList {
    items
  }
}

När den körs utökas frågan automatiskt så att den omfattar alla fält:

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

Exempelresultat

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

Exempelfråga - namn på alla städer

Det här är en enkel fråga som returnerar nameav alla poster i cityschema.

Exempelfråga

query {
  cityList {
    items {
      name
    }
  }
}

Exempelresultat

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

Exempelfråga - Ett enskilt specifikt stadsfragment

Det här är en fråga som returnerar information om en enskild fragmentpost på en viss plats i databasen.

Exempelfråga

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

Exempelresultat

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

Exempelfråga - Alla städer med en namngiven variant

Om du skapar en ny variant som heter "Berlin Center" (berlin_centre), för city I Berlin kan du använda en fråga för att returnera information om variationen.

Exempelfråga

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

Exempelresultat

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

Exempelfråga - namn på alla städer som taggats som stadbrytningar

Om du:

  • skapa en mängd olika taggar, namngivna Tourism : Business, City Break, Holiday
  • och tilldela dessa till den Överordnad variationen av City instanser

Sedan kan du använda en fråga för att returnera information om name och tagsav alla poster som är taggade som Citybrytningar i cityschema.

Exempelfråga

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

Exempelresultat

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

Exempelfråga - Fullständig information om företagets VD och anställda

Med hjälp av strukturen för kapslade fragment returnerar den här frågan alla detaljer för ett företags VD och alla dess anställda.

Exempelfråga

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

Exempelresultat

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

Exempelfråga - Alla personer som har namnet "Jobs" eller "Smith"

Detta kommer att filtrera alla persons för alla som har ett namn Jobseller Smith.

Exempelfråga

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

Exempelresultat

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

Exempelfråga - Alla personer som inte har namnet "Jobs"

Detta kommer att filtrera alla persons för alla som har ett namn Jobseller Smith.

Exempelfråga

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

Exempelresultat

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

Exempelfråga - Alla annonser vars _path börjar med ett visst prefix

Alla adventures där _path börjar med ett visst prefix (/content/dam/wknd/en/adventures/cycling).

Exempelfråga

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

Exempelresultat

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

Exempelfråga - Alla städer i Tyskland eller Schweiz med en befolkning på mellan 400000 och 99999

Här filtreras en kombination av fält. An AND (implicit) används för att välja populationomfång, medan OR (explicit) används för att välja önskade städer.

Exempelfråga

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

Exempelresultat

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

Exempelfråga - Alla städer med SAN i namnet, oavsett fall

Den här frågan frågar efter alla städer som har SAN i namnet, oavsett skiftläge.

Exempelfråga

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

Exempelresultat

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

Exempelfråga - Filtrera en array med ett objekt som måste förekomma minst en gång

Den här frågan filtrerar en array med ett objekt (city:na) som måste inträffa minst en gång.

Exempelfråga

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

Exempelresultat

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

Exempelfråga - Filtrera på ett exakt arrayvärde

Den här frågan filtrerar på ett exakt arrayvärde.

Exempelfråga

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

Exempelresultat

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

Exempelfråga för kapslade innehållsfragment - Alla företag som har minst en anställd med namnet "Smith"

Den här frågan visar filtrering för alla person av name "Smith", returnera information från två kapslade fragment - company och employee.

Exempelfråga

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

Exempelresultat

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

Exempelfråga för kapslade innehållsfragment - Alla företag där alla anställda har vunnit utmärkelsen"Gamestar"

Den här frågan visar filtrering över tre kapslade fragment - company, employeeoch award.

Exempelfråga

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

Exempelresultat

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

Exempelfråga för metadata - Ange metadata för utmärkelserna med namnet GB

Den här frågan visar filtrering över tre kapslade fragment - company, employeeoch award.

Exempelfråga

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

Exempelresultat

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

Exempelfrågor med WKND-projektet

Dessa exempelfrågor är baserade på WKND-projektet. Detta har:

  • Content Fragment Models available under:
    http://<hostname>:<port>/libs/dam/cfm/models/console/content/models.html/conf/wknd

  • Innehållsfragment (och annat innehåll) tillgängliga under:
    http://<hostname>:<port>/assets.html/content/dam/wknd/en

OBSERVERA

Eftersom resultaten kan bli omfattande återges de inte här.

Exempelfråga för alla innehållsfragment i en viss modell med de angivna egenskaperna

Detta exempel på frågor intervjuar:

  • för alla innehållsfragment av typen article
  • med pathoch author egenskaper.

Exempelfråga

{
  articleList {
    items {
      _path
      author
    }
  }
}

Exempelfråga för metadata

Den här frågan förhör:

  • för alla innehållsfragment av typen adventure
  • metadata

Exempelfråga

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

Exempelfråga för ett enstaka innehållsfragment av en given modell

Detta exempel på frågor intervjuar:

  • för ett enda innehållsfragment av typen article vid en viss sökväg
    • där alla format:
      • HTML
      • Markdown
      • Oformaterad text
      • JSON

Exempelfråga

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

Exempelfråga för en innehållsfragmentmodell från en modell

Detta exempel på frågor intervjuar:

  • för ett enda innehållsfragment
    • information om den underliggande modellen för innehållsfragment

Exempelfråga

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

Exempelfråga för ett kapslat innehållsfragment - typ av en modell

Den här frågan förhör:

  • för ett enda innehållsfragment av typen article vid en viss sökväg
    • i det, sökvägen och författaren till det refererade (kapslade) fragmentet
OBSERVERA

Fältet referencearticle har datatypen fragment-reference.

Exempelfråga

{
  articleByPath (_path: "/content/dam/wknd/en/magazine/skitouring/skitouring") {
    item {
        _path
        author
        referencearticle {
          _path
          author
      }
    }
  }
}

Exempelfråga för ett kapslat innehållsfragment - flera modelltyper

Den här frågan förhör:

  • för flera innehållsfragment av typen bookmark
    • med fragmentreferenser till andra fragment av de specifika modelltyperna article och adventure
OBSERVERA

Fältet fragments har datatypen fragment-reference, med modellerna Article, Adventure markerat.

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

Exempelfråga för ett innehållsfragment för en viss modell med innehållsreferenser

Det finns två varianter av den här frågan:

  1. Returnera alla innehållsreferenser.
  2. Returnera de specifika innehållsreferenserna av typen attachments.

De här frågorna förhör:

  • för flera innehållsfragment av typen bookmark
    • med Innehållsreferenser till andra fragment

Exempelfråga för flera innehållsfragment med förhämtade referenser

Följande fråga returnerar alla innehållsreferenser genom att använda _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
    }
  }
}

Exempelfråga för flera innehållsfragment med bifogade filer

Följande fråga returnerar alla attachments - ett specifikt fält (undergrupp) av typen content-reference:

OBSERVERA

Fältet attachments har datatypen content-reference, med olika formulär markerade.

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

Exempelfråga för ett enskilt innehållsfragment med intern referens för textredigering

Den här frågan förhör:

  • för ett enda innehållsfragment av typen bookmark vid en viss sökväg
    • i det, textbundna RTE-referenser
OBSERVERA

De textbundna RTE-referenserna är hydratiserade i _references.

Exempelfråga

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

Exempelfråga för en enstaka variant av innehållsfragment av en given modell

Den här frågan förhör:

  • för ett enda innehållsfragment av typen article vid en viss sökväg
    • inom detta, de uppgifter som avser variationen: variation1

Exempelfråga

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

Exempelfråga för en namngiven variant av flera innehållsfragment i en given modell

Den här frågan förhör:

  • för innehållsfragment av typen article med en specifik variation: variation1

Exempelfråga

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

Exempelfråga för flera innehållsfragment, och deras variationer, för en given modell

Den här frågan förhör:

  • för innehållsfragment av typen article och alla variationer

Exempelfråga

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

Exempelfråga för innehållsfragmentvariationer för en viss modell som har en specifik tagg bifogad

Den här frågan förhör:

  • för innehållsfragment av typen article med en eller flera variationer som har taggen WKND : Activity / Hiking

Exempelfråga

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

Exempelfråga för flera innehållsfragment för en viss språkinställning

Den här frågan förhör:

  • för innehållsfragment av typen article inom fr locale

Exempelfråga

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

Exempel på struktur för innehållsfragment (används med GraphQL)

Exempelfrågorna baseras på följande struktur som använder:

Exempel på modeller för innehållsfragment (scheman)

För exempelfrågorna använder vi följande innehållsmodeller och deras inbördes relationer (referenser ->):

Företag

De grundläggande fälten som definierar företaget är:

Fältnamn Datatyp Referens
Företag Enkelradig text
VD Fragmentreferens (enkel) Person
Anställda Fragmentreferens (multifält) Person

Person

Fälten som definierar en person, som också kan vara en medarbetare:

Fältnamn Datatyp Referens
Namn Enkelradig text
Förnamn Enkelradig text
Utmärkelser Fragmentreferens (multifält) Utmärkelse

Utmärkelse

Fälten som definierar en utmärkelse är:

Fältnamn Datatyp Referens
Genväg/ID Enkelradig text
Titel Enkelradig text

Ort

Fälten för att definiera en stad är:

Fältnamn Datatyp Referens
Namn Enkelradig text
Land Enkelradig text
Population Siffra
Kategorier Taggar

Exempel på innehållsfragment

Följande fragment används för rätt modell.

Företag

Företag VD Anställda
Apple Steve Jobs Duke Marsh
Max. textfält
Little Pony Inc. Adam Smith Lara Croft
Cutter Slade
NextStep Inc. Steve Jobs Joe Smith
Abe Lincoln

Person

Namn Förnamn Utmärkelser
Lincoln Adobe
Smith Adam
Slade Rensare Gameblitz
Gamestar
Marmor Duke
Smith Joe
Beskär Lara Gamestar
Caulfield Max Gameblitz
Jobb Steve

Utmärkelse

Genväg/ID Titel
GB Gameblitz
GS Gamestar
OSC Oscar

Ort

Namn Land Population Kategorier
Basel Schweiz 172258 stad:emea
Berlin Tyskland 3669491 stad:huvudstad
stad:emea
Bucharest Rumänien 1821000 stad:huvudstad
stad:emea
San Francisco USA 883306 stad:strand
stad:na
San Jose USA 102635 stad:na
Stuttgart Tyskland 634830 stad:emea
Zürich Schweiz 415367 stad:huvudstad
stad:emea

På denna sida