Verwenden von GraphQL mit AEM – Beispielinhalt und Abfragen learn-graphql-with-aem-sample-content-queries
Erfahren Sie, wie Sie GraphQL mit AEM verwenden, um Inhalte „headless“ bereitzustellen, indem Sie Beispielinhalte und Abfragen untersuchen.
Um mit GraphQL-Abfragen zu beginnen und zu sehen, wie sie mit AEM-Inhaltsfragmenten funktionieren, ist es hilfreich, einige praktische Beispiele zu betrachten.
Sehen Sie dazu:
-
Und einige GraphQL-Beispielabfragen, die auf der Beispiel-Inhaltsfragmentstruktur basieren (Inhaltsfragmentmodelle und verwandte Inhaltsfragmente).
GraphQL – Beispielabfragen unter Verwendung der Beispielstruktur für Inhaltsfragmente graphql-sample-queries-sample-content-fragment-structure
In diesen Beispielabfragen wird das Erstellen von Abfragen zusammen mit Beispielergebnissen veranschaulicht.
- Tools > Allgemein > GraphQL-Abfrage-Editor
- direkt, zum Beispiel:
http://localhost:4502/aem/graphiql.html
Beispielabfrage – Alle verfügbaren Schemata und Datentypen sample-all-schemes-datatypes
Sie gibt alle types
für alle verfügbaren Schemata zurück.
Beispielabfrage
{
__schema {
types {
name
description
}
}
}
Beispielergebnis
{
"data": {
"__schema": {
"types": [
{
"name": "AdventureModel",
"description": null
},
{
"name": "AdventureModelArrayFilter",
"description": null
},
{
"name": "AdventureModelFilter",
"description": null
},
{
"name": "AdventureModelResult",
"description": null
},
{
"name": "AdventureModelResults",
"description": null
},
{
"name": "AllFragmentModels",
"description": null
},
{
"name": "ArchiveRef",
"description": null
},
{
"name": "ArrayMode",
"description": null
},
{
"name": "ArticleModel",
"description": null
},
...more results...
{
"name": "__EnumValue",
"description": null
},
{
"name": "__Field",
"description": null
},
{
"name": "__InputValue",
"description": null
},
{
"name": "__Schema",
"description": "A GraphQL Introspection defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, the entry points for query, mutation, and subscription operations."
},
{
"name": "__Type",
"description": null
},
{
"name": "__TypeKind",
"description": "An enum describing what kind of type a given __Type is"
}
]
}
}
}
Beispielabfrage – Alle Informationen zu allen Städten sample-all-information-all-cities
Um alle Informationen zu allen Städten abzurufen, können Sie die grundlegende Abfrage verwenden:
Beispielabfrage
{
cityList {
items
}
}
Wenn die Abfrage ausgeführt wird, erweitert das System sie automatisch, um alle Felder einzuschließen:
{
cityList {
items {
_path
name
country
population
}
}
}
Beispielergebnisse
{
"data": {
"cityList": {
"items": [
{
"_path": "/content/dam/sample-content-fragments/cities/basel",
"name": "Basel",
"country": "Switzerland",
"population": 172258
},
{
"_path": "/content/dam/sample-content-fragments/cities/berlin",
"name": "Berlin",
"country": "Germany",
"population": 3669491
},
{
"_path": "/content/dam/sample-content-fragments/cities/bucharest",
"name": "Bucharest",
"country": "Romania",
"population": 1821000
},
{
"_path": "/content/dam/sample-content-fragments/cities/san-francisco",
"name": "San Francisco",
"country": "USA",
"population": 883306
},
{
"_path": "/content/dam/sample-content-fragments/cities/san-jose",
"name": "San Jose",
"country": "USA",
"population": 1026350
},
{
"_path": "/content/dam/sample-content-fragments/cities/stuttgart",
"name": "Stuttgart",
"country": "Germany",
"population": 634830
},
{
"_path": "/content/dam/sample-content-fragments/cities/zurich",
"name": "Zurich",
"country": "Switzerland",
"population": 415367
}
]
}
}
}
Beispielabfrage – Namen aller Städte sample-names-all-cities
Eine unkomplizierte Abfrage, um den name
aller Einträge im city
-Schema zurückzugeben.
Beispielabfrage
query {
cityList {
items {
name
}
}
}
Beispielergebnisse
{
"data": {
"cityList": {
"items": [
{
"name": "Basel"
},
{
"name": "Berlin"
},
{
"name": "Bucharest"
},
{
"name": "San Francisco"
},
{
"name": "San Jose"
},
{
"name": "Stuttgart"
},
{
"name": "Zurich"
}
]
}
}
}
Beispielabfrage – ein Einzelstadtfragment sample-single-specific-city-fragment
Eine Abfrage, um die Details eines einzelnen Fragmenteintrags an einem bestimmten Speicherort im Repository zurückzugeben.
Beispielabfrage
{
cityByPath (_path: "/content/dam/sample-content-fragments/cities/berlin") {
item {
_path
name
country
population
categories
}
}
}
Beispielergebnisse
{
"data": {
"cityByPath": {
"item": {
"_path": "/content/dam/sample-content-fragments/cities/berlin",
"name": "Berlin",
"country": "Germany",
"population": 3669491,
"categories": [
"city:capital",
"city:emea"
]
}
}
}
}
Beispielabfrage – alle Städte mit einer gegebenen Variante sample-cities-named-variation
Wenn Sie eine Variante mit dem Namen „Berlin Centre“ (berlin_centre
) für city
Berlin erstellen, können Sie eine Abfrage verwenden, um Details zur Variante zurückzugeben.
Beispielabfrage
{
cityList (variation: "berlin_center") {
items {
_path
name
country
population
categories
}
}
}
Beispielergebnisse
{
"data": {
"cityList": {
"items": [
{
"_path": "/content/dam/sample-content-fragments/cities/berlin",
"name": "Berlin",
"country": "Germany",
"population": 3669491,
"categories": [
"city:capital",
"city:emea"
]
}
]
}
}
}
Beispielabfrage – Namen aller Städte, die als Städtereisen markiert sind sample-names-all-cities-tagged-city-breaks
Wenn Sie:
- eine Vielzahl von Tags namens
Tourism
erstellen:Business
,City Break
,Holiday
- und sie der übergeordneten Variante verschiedener
City
-Instanzen zuweisen
Dann können Sie eine Abfrage verwenden, um Details zu name
und tags
aller Einträge mit dem Tag „Städtereisen“ im Schema city
herauszugeben.
Beispielabfrage
query {
cityList(
includeVariations: true,
filter: {_tags: {_expressions: [{value: "tourism:city-break", _operator: CONTAINS}]}}
){
items {
name,
_tags
}
}
}
Beispielergebnisse
{
"data": {
"cityList": {
"items": [
{
"name": "Berlin",
"_tags": [
"tourism:city-break",
"tourism:business"
]
},
{
"name": "Zurich",
"_tags": [
"tourism:city-break",
"tourism:business"
]
}
]
}
}
}
Beispielabfrage – Vollständige Details des CEO und der Mitarbeiter einer Firma sample-full-details-company-ceos-employees
Unter Verwendung der Struktur der verschachtelten Fragmente gibt diese Abfrage die vollständigen Details des CEO eines Unternehmens und aller seiner Mitarbeiter zurück.
Beispielabfrage
query {
companyList {
items {
name
ceo {
_path
name
firstName
awards {
id
title
}
}
employees {
name
firstName
awards {
id
title
}
}
}
}
}
Beispielergebnisse
{
"data": {
"companyList": {
"items": [
{
"name": "Apple Inc.",
"ceo": {
"_path": "/content/dam/sample-content-fragments/persons/steve-jobs",
"name": "Jobs",
"firstName": "Steve",
"awards": []
},
"employees": [
{
"name": "Marsh",
"firstName": "Duke",
"awards": []
},
{
"name": "Caulfield",
"firstName": "Max",
"awards": [
{
"id": "GB",
"title": "Gameblitz"
}
]
}
]
},
{
"name": "Little Pony, Inc.",
"ceo": {
"_path": "/content/dam/sample-content-fragments/persons/adam-smith",
"name": "Smith",
"firstName": "Adam",
"awards": []
},
"employees": [
{
"name": "Croft",
"firstName": "Lara",
"awards": [
{
"id": "GS",
"title": "Gamestar"
}
]
},
{
"name": "Slade",
"firstName": "Cutter",
"awards": [
{
"id": "GB",
"title": "Gameblitz"
},
{
"id": "GS",
"title": "Gamestar"
}
]
}
]
},
{
"name": "NextStep Inc.",
"ceo": {
"_path": "/content/dam/sample-content-fragments/persons/steve-jobs",
"name": "Jobs",
"firstName": "Steve",
"awards": []
},
"employees": [
{
"name": "Smith",
"firstName": "Joe",
"awards": []
},
{
"name": "Lincoln",
"firstName": "Abraham",
"awards": []
}
]
}
]
}
}
}
Beispielabfrage – Alle Personen mit dem Namen „Jobs“ oder „Smith“ sample-all-persons-jobs-smith
Eine Abfrage, die alle persons
nach denen filtert, die den Namen Jobs
oder Smith
haben.
Beispielabfrage
query {
personList(filter: {
name: {
_logOp: OR
_expressions: [
{
value: "Jobs"
},
{
value: "Smith"
}
]
}
}) {
items {
name
firstName
}
}
}
Beispielergebnisse
{
"data": {
"personList": {
"items": [
{
"name": "Smith",
"firstName": "Adam"
},
{
"name": "Smith",
"firstName": "Joe"
},
{
"name": "Jobs",
"firstName": "Steve"
}
]
}
}
}
Beispielabfrage – Alle Personen, die nicht den Namen „Jobs“ haben sample-all-persons-not-jobs
Eine Abfrage, die alle persons
nach denen filtert, die den Namen Jobs
oder Smith
haben.
Beispielabfrage
query {
personList(filter: {
name: {
_expressions: [
{
value: "Jobs"
_operator: EQUALS_NOT
}
]
}
}) {
items {
name
firstName
}
}
}
Beispielergebnisse
{
"data": {
"personList": {
"items": [
{
"name": "Lincoln",
"firstName": "Abraham"
},
{
"name": "Smith",
"firstName": "Adam"
},
{
"name": "Slade",
"firstName": "Cutter"
},
{
"name": "Marsh",
"firstName": "Duke"
},
{
"name": "Smith",
"firstName": "Joe"
},
{
"name": "Croft",
"firstName": "Lara"
},
{
"name": "Caulfield",
"firstName": "Max"
}
]
}
}
}
Beispielabfrage – Alle Abenteuer, deren _path
mit einem bestimmten Präfix beginnt sample-wknd-all-adventures-cycling-path-filter
Alle adventures
, bei denen _path
mit einem bestimmten Präfix (/content/dam/wknd/en/adventures/cycling
) beginnt.
Beispielabfrage
query {
adventureList(
filter: {
_path: {
_expressions: [
{
value: "/content/dam/wknd/en/adventures/cycling"
_operator: STARTS_WITH
}]
}
})
{
items {
_path
}
}
}
Beispielergebnisse
{
"data": {
"adventureList": {
"items": [
{
"_path": "/content/dam/wknd/en/adventures/cycling-southern-utah/cycling-southern-utah"
},
{
"_path": "/content/dam/wknd/en/adventures/cycling-tuscany/cycling-tuscany"
}
]
}
}
}
Beispielabfrage – Alle Städte in Deutschland oder der Schweiz mit einer Einwohnerzahl zwischen 400.000 und 999.999 sample-all-cities-d-ch-population
Hier wird nach einer Kombination von Feldern gefiltert. Ein AND
(implizit) wird verwendet, um den population
-Bereich auszuwählen, während ein OR
(explizit) zur Auswahl der erforderlichen Städte verwendet wird.
Beispielabfrage
query {
cityList(filter: {
population: {
_expressions: [
{
value: 400000
_operator: GREATER_EQUAL
}, {
value: 1000000
_operator: LOWER
}
]
},
country: {
_logOp: OR
_expressions: [
{
value: "Germany"
}, {
value: "Switzerland"
}
]
}
}) {
items {
name
population
country
}
}
}
Beispielergebnisse
{
"data": {
"cityList": {
"items": [
{
"name": "Stuttgart",
"population": 634830,
"country": "Germany"
},
{
"name": "Zurich",
"population": 415367,
"country": "Switzerland"
}
]
}
}
}
Beispielabfrage – Alle Städte mit SAN im Namen, unabhängig von der Groß-/Kleinschreibung sample-all-cities-san-ignore-case
Diese Abfrage durchsucht alle Städte mit SAN
im Namen, unabhängig von der Groß-/Kleinschreibung.
Beispielabfrage
query {
cityList(filter: {
name: {
_expressions: [
{
value: "SAN"
_operator: CONTAINS
_ignoreCase: true
}
]
}
}) {
items {
name
population
country
}
}
}
Beispielergebnisse
{
"data": {
"cityList": {
"items": [
{
"name": "San Francisco",
"population": 883306,
"country": "USA"
},
{
"name": "San Jose",
"population": 1026350,
"country": "USA"
}
]
}
}
}
Beispielabfrage – Filtern eines Arrays nach einem Element, das mindestens einmal vorkommen muss sample-array-item-occur-at-least-once
Diese Abfrage filtert ein Array nach einem Element (city:na
), das mindestens einmal vorkommen muss.
Beispielabfrage
query {
cityList(filter: {
categories: {
_expressions: [
{
value: "city:na"
_apply: AT_LEAST_ONCE
}
]
}
}) {
items {
name
population
country
categories
}
}
}
Beispielergebnisse
{
"data": {
"cityList": {
"items": [
{
"name": "San Francisco",
"population": 883306,
"country": "USA",
"categories": [
"city:beach",
"city:na"
]
},
{
"name": "San Jose",
"population": 1026350,
"country": "USA",
"categories": [
"city:na"
]
}
]
}
}
}
Beispielabfrage – Filtern nach einem exakten Array-Wert sample-array-exact-value
Diese Abfrage filtert nach einem exakten Array-Wert.
Beispielabfrage
query {
cityList(filter: {
categories: {
_expressions: [
{
values: [
"city:beach",
"city:na"
]
}
]
}
}) {
items {
name
population
country
categories
}
}
}
Beispielergebnisse
{
"data": {
"cityList": {
"items": [
{
"name": "San Francisco",
"population": 883306,
"country": "USA",
"categories": [
"city:beach",
"city:na"
]
}
]
}
}
}
Beispielabfrage für verschachtelte Inhaltsfragmente – Alle Unternehmen mit mindestens einem Mitarbeiter mit dem Namen „Smith“ sample-companies-employee-smith
Diese Abfrage veranschaulicht die Filterung nach person
von name
„Smith“, wobei Informationen aus zwei verschachtelten Fragmenten – company
und employee
– zurückgegeben werden.
Beispielabfrage
query {
companyList(filter: {
employees: {
_match: {
name: {
_expressions: [
{
value: "Smith"
}
]
}
}
}
}) {
items {
name
ceo {
name
firstName
}
employees {
name
firstName
}
}
}
}
Beispielergebnisse
{
"data": {
"companyList": {
"items": [
{
"name": "NextStep Inc.",
"ceo": {
"name": "Jobs",
"firstName": "Steve"
},
"employees": [
{
"name": "Smith",
"firstName": "Joe"
},
{
"name": "Lincoln",
"firstName": "Abraham"
}
]
}
]
}
}
}
Beispielabfrage für verschachtelte Inhaltsfragmente – Alle Unternehmen, bei denen alle Mitarbeiter die Auszeichnung „Gamestar“ erhalten haben sample-all-companies-employee-gamestar-award
Diese Abfrage veranschaulicht die Filterung von drei verschachtelten Fragmenten – company
, employee
und award
.
Beispielabfrage
query {
companyList(filter: {
employees: {
_apply: ALL
_match: {
awards: {
_match: {
id: {
_expressions: [
{
value: "GS"
_operator:EQUALS
}
]
}
}
}
}
}
}) {
items {
name
ceo {
name
firstName
}
employees {
name
firstName
awards {
id
title
}
}
}
}
}
Beispielergebnisse
{
"data": {
"companyList": {
"items": [
{
"name": "Little Pony, Inc.",
"ceo": {
"name": "Smith",
"firstName": "Adam"
},
"employees": [
{
"name": "Croft",
"firstName": "Lara",
"awards": [
{
"id": "GS",
"title": "Gamestar"
}
]
},
{
"name": "Slade",
"firstName": "Cutter",
"awards": [
{
"id": "GB",
"title": "Gameblitz"
},
{
"id": "GS",
"title": "Gamestar"
}
]
}
]
}
]
}
}
}
Beispielabfrage für Metadaten – Liste der Metadaten für Auszeichnungen mit dem Titel „GB“ sample-metadata-awards-gb
Diese Abfrage veranschaulicht die Filterung von drei verschachtelten Fragmenten – company
, employee
und award
.
Beispielabfrage
query {
awardList(filter: {
id: {
_expressions: [
{
value:"GB"
}
]
}
}) {
items {
_metadata {
stringMetadata {
name,
value
}
}
id
title
}
}
}
Beispielergebnisse
{
"data": {
"awardList": {
"items": [
{
"_metadata": {
"stringMetadata": [
{
"name": "title",
"value": "Gameblitz Award"
},
{
"name": "description",
"value": ""
}
]
},
"id": "GB",
"title": "Gameblitz"
}
]
}
}
}
Beispielabfragen unter Verwendung des WKND-Projekts sample-queries-using-wknd-project
Diese Beispielabfragen basieren auf dem WKND-Projekt. Es umfasst Folgendes:
-
Inhaltsfragmentmodelle verfügbar unter:
http://<hostname>:<port>/libs/dam/cfm/models/console/content/models.html/conf/wknd
-
Inhaltsfragmente (und anderere Inhalte) verfügbar unter:
http://<hostname>:<port>/assets.html/content/dam/wknd/en
http://<hostname>:<port>/assets.html/content/dam/wknd-shared/en
Beispielabfrage für alle Inhaltsfragmente eines bestimmten Modells mit den angegebenen Eigenschaften sample-wknd-all-model-properties
Diese Beispielabfrage untersucht:
- Alle Inhaltsfragmente vom Typ
article
- mit
_path
undauthorFragment
-Eigenschaften.
Beispielabfrage
{
articleList {
items {
_path
authorFragment {
_path
firstName
lastName
birthDay
}
}
}
}
Beispielabfrage für Metadaten sample-wknd-metadata
Diese Abfrage untersucht:
- Alle Inhaltsfragmente vom Typ
adventure
- Metadaten
Beispielabfrage
{
adventureList {
items {
_path,
_metadata {
stringMetadata {
name,
value
}
stringArrayMetadata {
name,
value
}
intMetadata {
name,
value
}
intArrayMetadata {
name,
value
}
floatMetadata {
name,
value
}
floatArrayMetadata {
name,
value
}
booleanMetadata {
name,
value
}
booleanArrayMetadata {
name,
value
}
calendarMetadata {
name,
value
}
calendarArrayMetadata {
name,
value
}
}
}
}
}
Beispielabfrage für ein einzelnes Inhaltsfragment eines bestimmten Modells sample-wknd-single-content-fragment-of-given-model
Diese Beispielabfrage untersucht:
-
Ein einzelnes Inhaltsfragment vom Typ
article
an einem bestimmten Pfad-
innerhalb des Fragments, alle Inhaltsformate:
- HTML
- Markdown
- Nur Text
- JSON
-
Beispielabfrage
{
articleByPath(_path: "/content/dam/wknd-shared/en/magazine/alaska-adventure/alaskan-adventures") {
item {
_path
authorFragment {
_path
firstName
lastName
birthDay
}
main {
html
markdown
plaintext
json
}
}
}
}
Beispielabfrage für ein Inhaltsfragmentmodell anhand eines Modells sample-wknd-content-fragment-model-from-model
Diese Beispielabfrage untersucht:
- Für ein einzelnes Inhaltsfragment
- Details des zugrunde liegenden Inhaltsfragmentmodells
Beispielabfrage
{
adventureByPath(_path: "/content/dam/wknd-shared/en/magazine/western-australia/western-australia-by-camper-van") {
item {
_path
title
_model {
_path
title
}
}
}
}
Beispielabfrage für ein verschachteltes Inhaltsfragment – Typ mit einem einzigen Modell sample-wknd-nested-fragment-single-model
Diese Abfrage untersucht:
- Ein einzelnes Inhaltsfragment vom Typ
article
an einem bestimmten Pfad- innerhalb des Fragments, Pfad und Autorin bzw. Autor des referenzierten (verschachtelten) Fragments
referencearticle
hat den Datentyp fragment-reference
.Beispielabfrage
{
adventureByPath(_path: "/content/dam/wknd-shared/en/magazine/western-australia/western-australia-by-camper-van") {
item {
_path
title
_model {
_path
title
}
}
}
}
Beispielabfrage für ein verschachteltes Inhaltsfragment – Typ mit mehreren Modellen sample-wknd-nested-fragment-multiple-model
Einzelner referenzierter Modelltyp
Diese Abfrage untersucht:
- Mehrere Inhaltsfragmente vom Typ
bookmark
- Mit Fragmentverweisen auf andere Fragmente des spezifischen Modelltyps
Article
- Mit Fragmentverweisen auf andere Fragmente des spezifischen Modelltyps
fragments
hat den Datentyp fragment-reference
, wobei das Modell Article
ausgewählt wurde. Die Abfrage liefert fragments
als ein Array von [Article]
.{
bookmarkList {
items {
fragments {
_path
author
}
}
}
}
Mehrere referenzierte Modelltypen
Diese Abfrage untersucht:
- Mehrere Inhaltsfragmente vom Typ
bookmark
- Mit Fragmentreferenzen auf andere Fragmente der spezifischen Modelltypen
Article
undAdventure
- Mit Fragmentreferenzen auf andere Fragmente der spezifischen Modelltypen
fragments
hat den Datentyp fragment-reference
, wobei die Modelle Article
, Adventure
ausgewählt sind. Die Abfrage liefert fragments
als ein Array von [AllFragmentModels]
, das mit Vereinigungstyp dereferenziert wird.{
bookmarkList {
items {
fragments {
... on ArticleModel {
_path
author
}
... on AdventureModel {
_path
adventureTitle
}
}
}
}
}
Beispielabfrage für ein Inhaltsfragment eines bestimmten Modells mit Inhaltsreferenzen sample-wknd-fragment-specific-model-content-reference
Es gibt zwei Varianten dieser Abfrage:
- Zurückgeben aller Inhaltsreferenzen.
- Zurückgeben der spezifischen Inhaltsreferenzen vom Typ
attachments
.
Diese Abfragen untersuchen:
- Mehrere Inhaltsfragmente vom Typ
bookmark
- Mit Inhaltsreferenzen auf andere Fragmente.
Beispielabfrage für mehrere Inhaltsfragmente mit vorab abgerufenen Verweisen sample-wknd-multiple-fragments-prefetched-references
Die folgende Abfrage gibt alle Inhaltsreferenzen mit _references
zurück:
{
bookmarkList {
_references {
... on ImageRef {
_path
type
height
}
... on MultimediaRef {
_path
type
size
}
... on DocumentRef {
_path
type
author
}
... on ArchiveRef {
_path
type
format
}
}
items {
_path
}
}
}
Beispielabfrage für mehrere Inhaltsfragmente mit Anhängen sample-wknd-multiple-fragments-attachments
Die folgende Abfrage gibt alle attachments
zurück – ein bestimmtes Feld (Untergruppe) vom Typ content-reference
:
attachments
hat den Datentyp content-reference
, wobei verschiedene Formen ausgewählt sind.{
bookmarkList {
items {
attachments {
... on PageRef {
_path
type
}
... on ImageRef {
_path
width
}
... on MultimediaRef {
_path
size
}
... on DocumentRef {
_path
author
}
... on ArchiveRef {
_path
format
}
}
}
}
}
Beispielabfragen für ein Inhaltsfragment eines bestimmten Modells mit UUID-Referenzen sample-wknd-fragment-specific-model-uuid-references
Diese Abfragen untersuchen:
- die UUID für ein Inhaltsfragment und für referenzierte Inhaltsfragmente oder Assets
- das Ergebnis wird über die JSON-Eigenschaft
_id
zurückgegeben
Beispielabfrage für ein Inhaltsfragment eines bestimmten Modells mithilfe einer UUID-Referenz sample-wknd-fragment-specific-model-using-a-uuid-reference
Die folgende Abfrage gibt alle Inhaltsverweise mit _id
und _path
zurück:
{
articleList {
items {
_id
_path
title
featuredImage {
... on ImageRef {
_id
_path
}
}
authorFragment {
firstName
lastName
profilePicture {
... on ImageRef {
_id
_path
}
}
}
}
}
}
Beispielabfrage für Inhaltsfragmente nach UUID-Referenz sample-wknd-fragment-specific-model-by-uuid-reference
Die folgende Abfrage gibt alle Inhaltsverweise zurück, die sich auf ein bestimmtes _id
beziehen:
{
articleById(_id: "3ce2bf53-7436-4d3e-b19a-2793bc2ca63e") {
item {
_id
_path
title
featuredImage {
... on ImageRef {
_id
_path
}
}
authorFragment {
firstName
lastName
profilePicture {
... on ImageRef {
_id
_path
}
}
}
}
}
}
Beispielabfrage für ein einzelnes Inhaltsfragment mit RTE-Inline-Verweis sample-wknd-single-fragment-rte-inline-reference
Diese Abfrage untersucht:
- Ein einzelnes Inhaltsfragment vom Typ
bookmark
an einem bestimmten Pfad- Darin die RTE-Inline-Verweise
_references
realisiert.Beispielabfrage
{
bookmarkByPath(_path: "/content/dam/wknd/en/bookmarks/skitouring") {
item {
_path
description {
json
}
}
_references {
... on ArticleModel {
_path
}
... on AdventureModel {
_path
}
... on ImageRef {
_path
}
... on MultimediaRef {
_path
}
... on DocumentRef {
_path
}
... on ArchiveRef {
_path
}
}
}
}
Beispielabfrage für eine einzelne Variante eines Inhaltsfragments eines bestimmten Modells sample-wknd-single-fragment-given-model
Diese Abfrage untersucht:
- Ein einzelnes Inhaltsfragment vom Typ
author
an einem bestimmten Pfad- innerhalb des Fragments, die Daten im Zusammenhang mit der Variante:
another
- innerhalb des Fragments, die Daten im Zusammenhang mit der Variante:
Beispielabfrage
{
authorByPath(_path: "/content/dam/wknd-shared/en/contributors/ian-provo", variation: "another") {
item {
_path
_variation
firstName
lastName
birthDay
}
}
}
Beispielabfrage für eine gegebene Variante mehrerer Inhaltsfragmente eines bestimmten Modells sample-wknd-variation-multiple-fragment-given-model
Diese Abfrage untersucht:
- Inhaltsfragmente vom Typ
author
mit einer bestimmten Variante:another
Beispielabfrage
{
authorList(variation: "another") {
items {
_path
_variation
firstName
lastName
birthDay
}
}
}
Beispielabfrage für mehrere Inhaltsfragmente und deren Varianten eines bestimmten Modells sample-wknd-multiple-fragment-variations-given-model
Diese Abfrage untersucht:
- für Inhaltsfragmente vom Typ
article
und alle Varianten
Beispielabfrage
query {
articleList(
includeVariations: true ){
items {
_variation
_path
_tags
_metadata {
stringArrayMetadata {
name
value
}
}
}
}
}
Beispielabfrage für Inhaltsfragmentvarianten eines bestimmten Modells, an das ein bestimmtes Tag angehängt ist sample-wknd-fragment-variations-given-model-specific-tag
Diese Abfrage untersucht:
- für Inhaltsfragmente vom Typ
article
mit einer oder mehreren Varianten mit dem TagWKND : Activity / Hiking
Beispielabfrage
{
articleList(
includeVariations: true,
filter: {_tags: {_expressions: [{value: "wknd:activity/hiking", _operator: CONTAINS}]}}
){
items {
_variation
_path
_tags
_metadata {
stringArrayMetadata {
name
value
}
}
}
}
}
Beispielabfrage für mehrere Inhaltsfragmente eines bestimmten Gebietsschemas sample-wknd-multiple-fragments-given-locale
Diese Abfrage untersucht:
- Inhaltsfragmente vom Typ
article
innerhalb des Gebietsschemasfr
Beispielabfrage
{
articleList(_locale: "fr") {
items {
_path
authorFragment {
_path
firstName
lastName
birthDay
}
main {
html
markdown
plaintext
json
}
}
}
}
Beispiel für eine Listenabfrage unter Verwendung von „offset“ und „limit“ sample-list-offset-limit
Diese Abfrage fragt Folgendes ab:
- die Ergebnisseite mit bis zu fünf Artikeln, beginnend mit dem fünften Artikel aus der vollständigen Ergebnisliste
Beispielabfrage
{
articleList(offset: 5, limit: 5) {
items {
authorFragment {
_path
firstName
lastName
birthDay
}
_path
}
}
}
Beispielhafte Paginierungsabfrage mit „first“ und „after“ sample-pagination-first-after
Diese Abfrage fragt Folgendes ab:
- die Ergebnisseite mit bis zu fünf Abenteuern, beginnend mit dem angegebenen Cursor-Element in der vollständigen Ergebnisliste
Beispielabfrage
{
adventurePaginated(first: 5, after: "ODg1MmMyMmEtZTAzMy00MTNjLThiMzMtZGQyMzY5ZTNjN2M1") {
edges {
cursor
node {
title
}
}
pageInfo {
endCursor
hasNextPage
}
}
}
Beispielabfrage mit Filterung nach _tags-ID und Ausschluss von Varianten sample-filtering-tag-not-variations
Diese Abfrage fragt Folgendes ab:
- für Inhaltsfragmente vom Typ
vehicle
mit dem Tagbig-block
- ausschließlich Varianten
Beispielabfrage
query {
vehicleList(
filter: {
_tags: {
_expressions: [
{
value: "vehicles:big-block"
_operator: CONTAINS
}
]
}
}) {
items {
_variation
_path
type
name
model
fuel
_tags
}
}
}
Beispielabfrage mit Filterung nach _tags-ID und Einschluss von Varianten sample-filtering-tag-with-variations
Diese Abfrage fragt Folgendes ab:
- für Inhaltsfragmente vom Typ
vehicle
mit dem Tagbig-block
- einschließlich Varianten
Beispielabfrage
{
enginePaginated(after: "SjkKNmVkODFmMGQtNTQyYy00NmQ4LTljMzktMjhlNzQwZTY1YWI2Cmo5", first: 9 ,includeVariations:true, sort: "name",
filter: {
_tags: {
_expressions: [
{
value: "vehicles:big-block"
_operator: CONTAINS
}
]
}
}) {
edges{
node {
_variation
_path
name
type
size
_tags
_metadata {
stringArrayMetadata {
name
value
}
}
}
cursor
}
}
}
Beispielabfragen für die Bereitstellung von DAM- und Dynamic Media-Assets sample-queries-delivery-DAM-DM
Für die Web-optimierte Bildbereitstellung (von DAM-Assets):
Für die Bereitstellung der URL an ein Dynamic Media-Asset
Die Struktur des Beispielinhaltsfragments (verwendet mit GraphQL) content-fragment-structure-graphql
Die Abfragen basieren auf der folgenden Struktur, die Folgendes verwendet:
-
Ein oder mehrere Beispielmodelle für Inhaltsfragmente bilden die Grundlage für die GraphQL-Schemata
-
Beispielinhaltsfragmente basierend auf den oben genannten Modellen
Beispielmodelle für Inhaltsfragmente (Schemata) sample-content-fragment-models-schemas
Für die Beispielabfragen verwenden Sie die folgenden Inhaltsmodelle und ihre Wechselbeziehungen (Verweise ->):
Unternehmen model-company
Die grundlegenden Felder, die das Unternehmen definieren, sind:
Person model-person
Die Felder, die eine Person definieren, die auch ein Mitarbeiter sein kann:
Auszeichnung model-award
Die Felder, die eine Auszeichnung definieren, sind:
Stadt model-city
Die Felder zur Definition einer Stadt sind:
Beispielinhaltsfragmente sample-content-fragments
Die folgenden Fragmente werden für das entsprechende Modell verwendet.
Unternehmen fragment-company
Max Caulfield
Cutter Slade
Abe Lincoln
Person fragment-person
Gamestar
Auszeichnung fragment-award
Stadt fragment-city
city:emea
city:emea
city:na
city:emea