Démarrage
DémarrageRemplacer la WP REST API

Remplacer la WP REST API

Si votre application utilise la WP REST API, il est possible d'utiliser Gato GraphQL à la place.

Avec l'extension Persisted queries, vous pouvez publier des endpoints de type REST, composés avec GraphQL.

Pour chacun des endpoints REST de votre application, vous pouvez créer un endpoint de requête persistée correspondant qui récupère les mêmes données, et utiliser cet endpoint à la place.

Par exemple, la requête GraphQL suivante peut remplacer l'endpoint REST /wp-json/wp/v2/posts/ :

{
  posts {
    id
    date: dateStr(format: "Y-m-d\\TH:i:s")
    modified: modifiedDateStr(format: "Y-m-d\\TH:i:s")
    slug
    status
    link: url
    title: self {
      rendered: title
    }
    content: self {
      rendered: content
    },
    excerpt: self {
      rendered: excerpt
    }
    author
    featured_media: featuredImage
    sticky: isSticky
    categories
    tags
  }
}

Grâce à la hiérarchie d'API, la requête persistée peut être publiée sous le chemin /graphql-query/wp/v2/posts/, ce qui facilite le mappage des endpoints.

Pour répliquer l'endpoint REST /wp-json/wp/v2/posts/{id}/, qui récupère les données de l'article avec l'ID donné, nous pouvons fournir l'ID de l'article via le paramètre d'URL postId.

Par exemple, la requête persistée suivante peut être invoquée sous l'endpoint /graphql-query/wp/v2/posts/single/?postId={id} :

query GetPost($postId: ID!) {
  post(by: { id: $postId }) {
    id
    date: dateStr(format: "Y-m-d\\TH:i:s")
    modified: modifiedDateStr(format: "Y-m-d\\TH:i:s")
    slug
    status
    link: url
    title: self {
      rendered: title
    }
    content: self {
      rendered: content
    },
    excerpt: self {
      rendered: excerpt
    }
    author
    featured_media: featuredImage
    sticky: isSticky
    categories
    tags
  }
}