Saiba como usar o GraphQL com o AEM - Exemplos de conteúdo e consultas learn-graphql-with-aem-sample-content-queries
Saiba como usar o GraphQL com o AEM para fornecer conteúdo de forma headless, explorando exemplos de conteúdo e consultas.
Para começar a usar consultas GraphQL e aprender como elas funcionam com fragmentos de conteúdo do AEM, é útil examinar alguns exemplos práticos.
Para isso, consulte:
-
E alguns exemplos de consultas GraphQL, com base no exemplo de estrutura de fragmento de conteúdo (modelos de fragmento de conteúdo e fragmentos de conteúdo relacionados).
GraphQL - Exemplos de consultas usando o Exemplo de estrutura do Fragmento de conteúdo graphql-sample-queries-sample-content-fragment-structure
Veja esses exemplos de consultas para obter ilustrações de como criar consultas, e veja também os exemplos de resultados.
- Ferramentas > Geral > Editor de Consultas do GraphQL
- diretamente; por exemplo,
http://localhost:4502/aem/graphiql.html
Exemplo de consulta - Todos os esquemas e tipos de dados disponíveis sample-all-schemes-datatypes
Retorna todos os types
para todos os esquemas disponíveis.
Exemplo de consulta
{
__schema {
types {
name
description
}
}
}
Exemplo de resultado
{
"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"
}
]
}
}
}
Exemplo de consulta - Todas as informações sobre todas as cidades sample-all-information-all-cities
Para recuperar todas as informações sobre todas as cidades, você pode usar essa consulta básica:
Exemplo de consulta
{
cityList {
items
}
}
Quando executada, o sistema expande automaticamente a consulta para incluir todos os campos:
{
cityList {
items {
_path
name
country
population
}
}
}
Exemplo de resultados
{
"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
}
]
}
}
}
Exemplo de consulta - Nomes de todas as cidades sample-names-all-cities
Esta é uma consulta simples para retornar o name
de todas as entradas no esquema city
.
Exemplo de consulta
query {
cityList {
items {
name
}
}
}
Exemplo de resultados
{
"data": {
"cityList": {
"items": [
{
"name": "Basel"
},
{
"name": "Berlin"
},
{
"name": "Bucharest"
},
{
"name": "San Francisco"
},
{
"name": "San Jose"
},
{
"name": "Stuttgart"
},
{
"name": "Zurich"
}
]
}
}
}
Exemplo de consulta - Um único fragmento de cidade específico sample-single-specific-city-fragment
Esta é uma consulta para retornar os detalhes de uma única entrada de fragmento em um local específico no repositório.
Exemplo de consulta
{
cityByPath (_path: "/content/dam/sample-content-fragments/cities/berlin") {
item {
_path
name
country
population
categories
}
}
}
Exemplo de resultados
{
"data": {
"cityByPath": {
"item": {
"_path": "/content/dam/sample-content-fragments/cities/berlin",
"name": "Berlin",
"country": "Germany",
"population": 3669491,
"categories": [
"city:capital",
"city:emea"
]
}
}
}
}
Exemplo de consulta - Todas as cidades com uma variação nomeada sample-cities-named-variation
Se você criar uma nova variação chamada “Centro de Berlim” (berlin_centre
) para a city
Berlim, é possível usar uma consulta para retornar detalhes da variação.
Exemplo de consulta
{
cityList (variation: "berlin_center") {
items {
_path
name
country
population
categories
}
}
}
Exemplo de resultados
{
"data": {
"cityList": {
"items": [
{
"_path": "/content/dam/sample-content-fragments/cities/berlin",
"name": "Berlin",
"country": "Germany",
"population": 3669491,
"categories": [
"city:capital",
"city:emea"
]
}
]
}
}
}
Exemplo de consulta - Nomes de todas as cidades marcadas como Quebras de cidade sample-names-all-cities-tagged-city-breaks
Se você:
- criar várias tags chamadas
Tourism
:Business
,City Break
,Holiday
- e atribuí-las à variação principal de várias instâncias de
City
É possível usar uma consulta para retornar detalhes de name
e tags
de todas as entradas marcadas como Cidades para passeio no esquema de city
.
Exemplo de consulta
query {
cityList(
includeVariations: true,
filter: {_tags: {_expressions: [{value: "tourism:city-break", _operator: CONTAINS}]}}
){
items {
name,
_tags
}
}
}
Exemplo de resultados
{
"data": {
"cityList": {
"items": [
{
"name": "Berlin",
"_tags": [
"tourism:city-break",
"tourism:business"
]
},
{
"name": "Zurich",
"_tags": [
"tourism:city-break",
"tourism:business"
]
}
]
}
}
}
Exemplo de consulta - Detalhes completos do CEO e funcionários de uma empresa sample-full-details-company-ceos-employees
Usando a estrutura dos fragmentos aninhados, essa consulta retorna os detalhes completos do CEO de uma empresa e de todos os funcionários dela.
Exemplo de consulta
query {
companyList {
items {
name
ceo {
_path
name
firstName
awards {
id
title
}
}
employees {
name
firstName
awards {
id
title
}
}
}
}
}
Exemplo de resultados
{
"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": []
}
]
}
]
}
}
}
Exemplo de consulta - Todas as pessoas com o nome de "Jobs" ou "Smith" sample-all-persons-jobs-smith
Uma consulta que filtra todas as persons
para encontrar as que possuam o nome Jobs
ou Smith
.
Exemplo de consulta
query {
personList(filter: {
name: {
_logOp: OR
_expressions: [
{
value: "Jobs"
},
{
value: "Smith"
}
]
}
}) {
items {
name
firstName
}
}
}
Exemplo de resultados
{
"data": {
"personList": {
"items": [
{
"name": "Smith",
"firstName": "Adam"
},
{
"name": "Smith",
"firstName": "Joe"
},
{
"name": "Jobs",
"firstName": "Steve"
}
]
}
}
}
Exemplo de consulta - Todas as pessoas que não tenham o nome "Jobs" sample-all-persons-not-jobs
Uma consulta que filtra todas as persons
para encontrar as que possuam o nome Jobs
ou Smith
.
Exemplo de consulta
query {
personList(filter: {
name: {
_expressions: [
{
value: "Jobs"
_operator: EQUALS_NOT
}
]
}
}) {
items {
name
firstName
}
}
}
Exemplo de resultados
{
"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"
}
]
}
}
}
Exemplo de consulta - Todas as aventuras cujo _path
comece com um prefixo específico sample-wknd-all-adventures-cycling-path-filter
Todas as adventures
em que o _path
comece com um prefixo específico (/content/dam/wknd/en/adventures/cycling
).
Exemplo de consulta
query {
adventureList(
filter: {
_path: {
_expressions: [
{
value: "/content/dam/wknd/en/adventures/cycling"
_operator: STARTS_WITH
}]
}
})
{
items {
_path
}
}
}
Exemplo de resultados
{
"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"
}
]
}
}
}
Exemplo de consulta - Todas as cidades localizadas na Alemanha ou na Suíça com uma população de 400.000 a 999.999 pessoas sample-all-cities-d-ch-population
Aqui, uma combinação de campos é filtrada. Um AND
(implícito) é usado para selecionar o intervalo population
, enquanto um OR
(explícito) é usado para selecionar as cidades necessárias.
Exemplo de consulta
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
}
}
}
Exemplo de resultados
{
"data": {
"cityList": {
"items": [
{
"name": "Stuttgart",
"population": 634830,
"country": "Germany"
},
{
"name": "Zurich",
"population": 415367,
"country": "Switzerland"
}
]
}
}
}
Exemplo de consulta - todas as cidades com SAN no nome, podendo ser maiúsculas ou minúsculas sample-all-cities-san-ignore-case
Esta consulta interroga todas as cidades que tenham SAN
no nome, podendo ser maiúsculas ou minúsculas.
Exemplo de consulta
query {
cityList(filter: {
name: {
_expressions: [
{
value: "SAN"
_operator: CONTAINS
_ignoreCase: true
}
]
}
}) {
items {
name
population
country
}
}
}
Exemplo de resultados
{
"data": {
"cityList": {
"items": [
{
"name": "San Francisco",
"population": 883306,
"country": "USA"
},
{
"name": "San Jose",
"population": 1026350,
"country": "USA"
}
]
}
}
}
Exemplo de consulta - filtrar em uma matriz com um item que deve ocorrer pelo menos uma vez sample-array-item-occur-at-least-once
Essa consulta filtra em uma matriz com um item (city:na
) que deve ocorrer pelo menos uma vez.
Exemplo de consulta
query {
cityList(filter: {
categories: {
_expressions: [
{
value: "city:na"
_apply: AT_LEAST_ONCE
}
]
}
}) {
items {
name
population
country
categories
}
}
}
Exemplo de resultados
{
"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"
]
}
]
}
}
}
Exemplo de consulta - filtrar em um valor de matriz exato sample-array-exact-value
Essa consulta filtra em um valor de matriz exato.
Exemplo de consulta
query {
cityList(filter: {
categories: {
_expressions: [
{
values: [
"city:beach",
"city:na"
]
}
]
}
}) {
items {
name
population
country
categories
}
}
}
Exemplo de resultados
{
"data": {
"cityList": {
"items": [
{
"name": "San Francisco",
"population": 883306,
"country": "USA",
"categories": [
"city:beach",
"city:na"
]
}
]
}
}
}
Exemplo de consulta para fragmentos de conteúdo aninhados - todas as empresas que tenham pelo menos um funcionário com o nome "Smith" sample-companies-employee-smith
Esta consulta ilustra a filtragem de qualquer person
de name
"Smith", retornando informações de dois fragmentos aninhados - company
e employee
.
Exemplo de consulta
query {
companyList(filter: {
employees: {
_match: {
name: {
_expressions: [
{
value: "Smith"
}
]
}
}
}
}) {
items {
name
ceo {
name
firstName
}
employees {
name
firstName
}
}
}
}
Exemplo de resultados
{
"data": {
"companyList": {
"items": [
{
"name": "NextStep Inc.",
"ceo": {
"name": "Jobs",
"firstName": "Steve"
},
"employees": [
{
"name": "Smith",
"firstName": "Joe"
},
{
"name": "Lincoln",
"firstName": "Abraham"
}
]
}
]
}
}
}
Exemplo de consulta para fragmentos de conteúdo aninhados - todas as empresas em que todos os funcionários ganharam o prêmio "Gamestar" sample-all-companies-employee-gamestar-award
Esta consulta ilustra a filtragem entre três fragmentos aninhados - company
, employee
e award
.
Exemplo de consulta
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
}
}
}
}
}
Exemplo de resultados
{
"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"
}
]
}
]
}
]
}
}
}
Exemplo de consulta para metadados - listar os metadados para prêmios denominados GB sample-metadata-awards-gb
Esta consulta ilustra a filtragem entre três fragmentos aninhados - company
, employee
e award
.
Exemplo de consulta
query {
awardList(filter: {
id: {
_expressions: [
{
value:"GB"
}
]
}
}) {
items {
_metadata {
stringMetadata {
name,
value
}
}
id
title
}
}
}
Exemplo de resultados
{
"data": {
"awardList": {
"items": [
{
"_metadata": {
"stringMetadata": [
{
"name": "title",
"value": "Gameblitz Award"
},
{
"name": "description",
"value": ""
}
]
},
"id": "GB",
"title": "Gameblitz"
}
]
}
}
}
Exemplo de consulta usando o projeto WKND sample-queries-using-wknd-project
Esses exemplos de consultas são baseadas no projeto WKND. Ele tem o seguinte:
-
Modelos de fragmentos de conteúdo disponíveis em:
http://<hostname>:<port>/libs/dam/cfm/models/console/content/models.html/conf/wknd
-
Fragmentos de conteúdo (e outro conteúdo) disponíveis em:
http://<hostname>:<port>/assets.html/content/dam/wknd/en
http://<hostname>:<port>/assets.html/content/dam/wknd-shared/en
Exemplo de consulta para todos os Fragmentos de conteúdo de um determinado modelo com as propriedades especificadas sample-wknd-all-model-properties
Este exemplo de consulta interroga:
- por todos os Fragmentos de conteúdo do tipo
article
- com o
_path
e as propriedades doauthorFragment
.
Exemplo de consulta
{
articleList {
items {
_path
authorFragment {
_path
firstName
lastName
birthDay
}
}
}
}
Exemplo de consulta para metadados sample-wknd-metadata
Esta consulta interroga:
- por todos os Fragmentos de conteúdo do tipo
adventure
- metadados
Exemplo de consulta
{
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
}
}
}
}
}
Exemplo de consulta para um único Fragmento de conteúdo de um determinado modelo sample-wknd-single-content-fragment-of-given-model
Este exemplo de consulta interroga:
-
por um único Fragmento de conteúdo do tipo
article
em um caminho específico-
dentro desse fragmento, todos os formatos de conteúdo:
- HTML
- Markdown
- Texto sem formatação
- JSON
-
Exemplo de consulta
{
articleByPath(_path: "/content/dam/wknd-shared/en/magazine/alaska-adventure/alaskan-adventures") {
item {
_path
authorFragment {
_path
firstName
lastName
birthDay
}
main {
html
markdown
plaintext
json
}
}
}
}
Exemplo de consulta para um modelo de fragmento de conteúdo a partir de um modelo sample-wknd-content-fragment-model-from-model
Este exemplo de consulta interroga:
- por um único Fragmento de conteúdo
- detalhes do modelo de Fragmento de conteúdo subjacente
Exemplo de consulta
{
adventureByPath(_path: "/content/dam/wknd-shared/en/magazine/western-australia/western-australia-by-camper-van") {
item {
_path
title
_model {
_path
title
}
}
}
}
Exemplo de consulta para um Fragmento de conteúdo aninhado - tipo de modelo único sample-wknd-nested-fragment-single-model
Esta consulta interroga:
- por um único Fragmento de conteúdo do tipo
article
em um caminho específico- dentro desse fragmento, o caminho e autor(a) do fragmento referenciado (aninhado)
referencearticle
tem o tipo de dados fragment-reference
.Exemplo de consulta
{
adventureByPath(_path: "/content/dam/wknd-shared/en/magazine/western-australia/western-australia-by-camper-van") {
item {
_path
title
_model {
_path
title
}
}
}
}
Exemplo de consulta para um Fragmento de conteúdo aninhado - tipo de modelo múltiplo sample-wknd-nested-fragment-multiple-model
Tipo de modelo referenciado único
Esta consulta interroga:
- por vários Fragmentos de conteúdo do tipo
bookmark
- com referências de fragmentos a outros fragmentos dos tipos de modelo específicos
Article
- com referências de fragmentos a outros fragmentos dos tipos de modelo específicos
fragments
tem o tipo de dados fragment-reference
, com o modelo Article
selecionado. A consulta fornece fragments
como uma matriz de [Article]
.{
bookmarkList {
items {
fragments {
_path
author
}
}
}
}
Vários tipos de modelo referenciados
Esta consulta interroga:
- por vários Fragmentos de conteúdo do tipo
bookmark
- com Referências de fragmentos a outros fragmentos dos tipos de modelo específicos
Article
eAdventure
- com Referências de fragmentos a outros fragmentos dos tipos de modelo específicos
fragments
tem o tipo de dados fragment-reference
, com os modelos Article
e Adventure
selecionados. A consulta entrega fragments
como uma matriz de [AllFragmentModels]
, que é desreferenciada com o tipo de união.{
bookmarkList {
items {
fragments {
... on ArticleModel {
_path
author
}
... on AdventureModel {
_path
adventureTitle
}
}
}
}
}
Exemplo de consulta para um Fragmento de conteúdo de um modelo específico com Referências de conteúdo sample-wknd-fragment-specific-model-content-reference
Há duas opções desta consulta:
- Para retornar todas as referências de conteúdo.
- Para retornar as referências de conteúdo específicas do tipo
attachments
.
Essas consultas interrogam:
- por vários Fragmentos de conteúdo do tipo
bookmark
- com Referências de conteúdo a outros fragmentos
Exemplo de consulta para vários Fragmentos de conteúdo com Referências previamente buscadas sample-wknd-multiple-fragments-prefetched-references
A consulta a seguir retorna todas as referências de conteúdo usando _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
}
}
}
Exemplo de consulta para vários Fragmentos de conteúdo com anexos sample-wknd-multiple-fragments-attachments
A consulta a seguir retorna todos os attachments
- um campo específico (subgrupo) do tipo content-reference
:
attachments
tem o tipo de dados content-reference
, com vários formulários selecionados.{
bookmarkList {
items {
attachments {
... on PageRef {
_path
type
}
... on ImageRef {
_path
width
}
... on MultimediaRef {
_path
size
}
... on DocumentRef {
_path
author
}
... on ArchiveRef {
_path
format
}
}
}
}
}
Exemplos de consultas para um fragmento de conteúdo de um modelo específico usando referências UUID sample-wknd-fragment-specific-model-uuid-references
Essas consultas interrogam:
- a UUID de um fragmento de conteúdo e de fragmentos ou ativos de conteúdo referenciados
- o resultado é retornado por meio da propriedade JSON
_id
Exemplo de consulta para um Fragmento de conteúdo de um modelo específico usando uma referência UUID sample-wknd-fragment-specific-model-using-a-uuid-reference
A consulta a seguir retorna todas as referências de conteúdo usando _id
e _path
:
{
articleList {
items {
_id
_path
title
featuredImage {
... on ImageRef {
_id
_path
}
}
authorFragment {
firstName
lastName
profilePicture {
... on ImageRef {
_id
_path
}
}
}
}
}
}
Exemplo de consulta para fragmentos de conteúdo por referência UUID sample-wknd-fragment-specific-model-by-uuid-reference
A consulta a seguir retorna todas as referências de conteúdo relacionadas a uma _id
específica:
{
articleById(_id: "3ce2bf53-7436-4d3e-b19a-2793bc2ca63e") {
item {
_id
_path
title
featuredImage {
... on ImageRef {
_id
_path
}
}
authorFragment {
firstName
lastName
profilePicture {
... on ImageRef {
_id
_path
}
}
}
}
}
}
Exemplo de consulta para um único Fragmento de conteúdo com Referência em linha do RTE sample-wknd-single-fragment-rte-inline-reference
Esta consulta interroga:
- por um único Fragmento de conteúdo do tipo
bookmark
em um caminho específico- dentro disso, referências em linha do RTE
_references
.Exemplo de consulta
{
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
}
}
}
}
Exemplo de consulta para uma única variação do Fragmento de conteúdo de um determinado modelo sample-wknd-single-fragment-given-model
Esta consulta interroga:
- por um único Fragmento de conteúdo do tipo
author
em um caminho específico- dentro desse fragmento, os dados relativos à variação:
another
- dentro desse fragmento, os dados relativos à variação:
Exemplo de consulta
{
authorByPath(_path: "/content/dam/wknd-shared/en/contributors/ian-provo", variation: "another") {
item {
_path
_variation
firstName
lastName
birthDay
}
}
}
Exemplo de consulta para uma variação nomeada de vários Fragmentos de conteúdo de um determinado modelo sample-wknd-variation-multiple-fragment-given-model
Esta consulta interroga:
- por Fragmentos de conteúdo do tipo
author
com uma variação específica:another
Exemplo de consulta
{
authorList(variation: "another") {
items {
_path
_variation
firstName
lastName
birthDay
}
}
}
Exemplo de consulta para vários fragmentos de conteúdo e suas variações em um determinado modelo sample-wknd-multiple-fragment-variations-given-model
Esta consulta interroga:
- fragmentos de conteúdo do tipo
article
e todas as variações
Exemplo de consulta
query {
articleList(
includeVariations: true ){
items {
_variation
_path
_tags
_metadata {
stringArrayMetadata {
name
value
}
}
}
}
}
Exemplo de consulta para variações de fragmento de conteúdo de um determinado modelo que tem uma tag específica anexada sample-wknd-fragment-variations-given-model-specific-tag
Esta consulta interroga:
- fragmentos de conteúdo do tipo
article
com uma ou mais variações que possuem a tagWKND : Activity / Hiking
Exemplo de consulta
{
articleList(
includeVariations: true,
filter: {_tags: {_expressions: [{value: "wknd:activity/hiking", _operator: CONTAINS}]}}
){
items {
_variation
_path
_tags
_metadata {
stringArrayMetadata {
name
value
}
}
}
}
}
Exemplo de consulta para vários Fragmentos de conteúdo de uma determinada localidade sample-wknd-multiple-fragments-given-locale
Esta consulta interroga:
- por Fragmentos de conteúdo do tipo
article
no localfr
Exemplo de consulta
{
articleList(_locale: "fr") {
items {
_path
authorFragment {
_path
firstName
lastName
birthDay
}
main {
html
markdown
plaintext
json
}
}
}
}
Exemplo de consulta de lista usando deslocamento e limite sample-list-offset-limit
Esta consulta interroga:
- para a página de resultados que contém até cinco artigos, a partir do quinto artigo da lista de resultados completa
Exemplo de consulta
{
articleList(offset: 5, limit: 5) {
items {
authorFragment {
_path
firstName
lastName
birthDay
}
_path
}
}
}
Exemplo de consulta de paginação usando primeiro e depois sample-pagination-first-after
Esta consulta interroga:
- para a página de resultados que contém até cinco aventuras, a partir do item de cursor especificado na lista de resultados completa
Exemplo de consulta
{
adventurePaginated(first: 5, after: "ODg1MmMyMmEtZTAzMy00MTNjLThiMzMtZGQyMzY5ZTNjN2M1") {
edges {
cursor
node {
title
}
}
pageInfo {
endCursor
hasNextPage
}
}
}
Exemplo de consulta com filtragem por ID de _tags, excluindo variações sample-filtering-tag-not-variations
Esta consulta interroga:
- fragmentos de conteúdo do tipo
vehicle
que possuem a tagbig-block
, - excluindo variações
Exemplo de consulta
query {
vehicleList(
filter: {
_tags: {
_expressions: [
{
value: "vehicles:big-block"
_operator: CONTAINS
}
]
}
}) {
items {
_variation
_path
type
name
model
fuel
_tags
}
}
}
Exemplo de consulta com filtragem por ID de _tags, incluindo variações sample-filtering-tag-with-variations
Esta consulta interroga:
- fragmentos de conteúdo do tipo
vehicle
que possuem a tagbig-block
, - incluindo variações
Exemplo de consulta
{
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
}
}
}
Exemplos de consulta para entrega do DAM e do Dynamic Media Assets sample-queries-delivery-DAM-DM
Para entrega de imagens otimizadas para a Web (de ativos DAM):
Para a entrega do URL a um ativo do Dynamic Media
Exemplo de estrutura do fragmento de conteúdo (usada com GraphQL) content-fragment-structure-graphql
Os exemplos de consultas são baseados na seguinte estrutura, que usa:
-
Um ou mais, exemplos de Modelos de fragmento de conteúdo - formam a base para os esquemas GraphQL
-
Exemplos de Fragmentos de conteúdo com base nos modelos acima referidos
Exemplos de Modelos de fragmento de conteúdo (esquemas) sample-content-fragment-models-schemas
Para as consultas de exemplo, utilize os seguintes modelos de conteúdo e suas inter-relações (referências ->):
Empresa model-company
Os campos básicos que definem a empresa são:
Pessoa model-person
Os campos que definem uma pessoa, que também pode ser um funcionário:
Prêmio model-award
Os campos que definem um prêmio são:
Cidade model-city
Os campos para definir uma cidade são:
Exemplos de Fragmentos de conteúdo sample-content-fragments
Os fragmentos a seguir são usados para o modelo apropriado.
Empresa fragment-company
Max Caulfield
Cutter Slade
Abe Lincoln
Pessoa fragment-person
Gamestar
Prêmio fragment-award
Cidade fragment-city
city:emea
city:emea
city:na
city:emea