Médias
Voici des exemples de requêtes pour récupérer et muter des données multimédias.
Récupérer des médias
Un élément multimédia, avec la source de l'image en différentes tailles :
query {
mediaItem(by: { id: 1647 }) {
id
srcSet
src
thumbSizeSrc: src(size: "thumbnail")
largeSizeSrc: src(size: "large")
}
}Tous les éléments multimédias (avec le mime type "image" par défaut), et toutes les tailles d'image :
query {
imageSizeNames
mediaItems {
id
srcSet
src(size: "medium")
sizes(size: "thumbnail")
width
height
slug
url
urlPath
title
caption
altText
description
date
mimeType
}
}L'image mise en avant des posts :
query {
posts {
id
hasFeaturedImage
featuredImage {
id
src
width
height
}
}
}Filtrer les éléments multimédias :
{
mediaItems(
pagination: { limit: 3 },
sort: { by: TITLE },
filter: { dateQuery: { after: "2012-01-02" } }
) {
id
src
height
width
}
}Récupérer les éléments vidéo et audio :
{
mediaItems(
filter: { mimeTypes: ["video", "audio"] }
) {
id
src
}
}Récupérer les éléments multimédias de l'utilisateur connecté
Les champs myMediaItemCount, myMediaItems et myMediaItem récupèrent les éléments multimédias de l'utilisateur connecté :
query GetMediaItems {
me {
slug
}
myMediaItemCount
myMediaItems(pagination: {
limit: 3
}) {
...MediaItemData
}
myMediaItem(by: { id: 1380 }) {
...MediaItemData
}
}
fragment MediaItemData on Media {
id
mimeType
src
author {
slug
}
}Définir l'image mise en avant d'un post
Nous pouvons référencer n'importe quelle image existant dans la bibliothèque de médias.
mutation {
setFeaturedImageOnCustomPost(
input: {
customPostID: 1499,
mediaItemID: 1505
}
) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
customPostID
customPost {
...on WithFeaturedImage {
featuredImage {
id
src
}
}
}
}
}Avec des mutations imbriquées :
mutation {
post(by: { id: 1499 }) {
setFeaturedImage(input: { mediaItemID: 1647 }) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
customPostID
customPost {
...on WithFeaturedImage {
featuredImage {
id
src
}
}
}
}
}
}Téléverser une pièce jointe dans la bibliothèque de médias
La mutation createMediaItem n'accepte pas les URLs non sécurisées par défaut.
Lisez le guide Créer des éléments multimédias depuis des URLs non sécurisées pour apprendre comment modifier ce comportement.
En passant l'URL :
mutation CreateMediaItems {
fromURL: createMediaItem(input: {
from: {
url: {
source: "https://gatographql.com/assets/GatoGraphQL-logo.webp"
}
}
caption: "Gato GraphQL logo"
altText: "This is the Gato GraphQL logo"
}) {
mediaItemID
status
errors {
__typename
...on ErrorPayload {
message
}
}
mediaItem {
altText
caption
mimeType
slug
src
title
}
}
}En passant directement le contenu de la pièce jointe :
mutation CreateMediaItems {
createMediaItem(input: {
from: {
contents: {
body: """
<html>
<body>
Hello world!
</body>
</html>
"""
filename: "hello-world.html"
}
}
title: "Hello world!"
}) {
mediaItemID
status
errors {
__typename
...on ErrorPayload {
message
}
}
mediaItem {
altText
caption
mimeType
slug
src
title
}
}
}Créer un élément multimédia en réutilisant le fichier joint d'un autre élément multimédia :
mutation CreateMediaItems {
createMediaItem(input: {
from: {
mediaItemBy: {
id: 1361
}
}
title: "Hello world!"
}) {
mediaItemID
status
errors {
__typename
...on ErrorPayload {
message
}
}
mediaItem {
altText
caption
mimeType
slug
src
title
}
}
}Mettre à jour un élément multimédia
Modifier le texte alternatif et la légende d'une image :
mutation UpdateMediaItem {
updateMediaItem(input: {
id: 1380
caption: "Updated caption"
altText: "Updated alt text"
}) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
mediaItem {
altText
caption
}
}
}