Начало работы
Начало работыЗамена WP REST API

Замена WP REST API

Если ваше приложение использует WP REST API, его можно заменить на Gato GraphQL.

С помощью расширения Persisted queries вы можете публиковать REST-подобные эндпоинты, составленные с использованием GraphQL.

Для каждого из REST-эндпоинтов вашего приложения вы можете создать соответствующий эндпоинт persisted query, который извлекает те же данные, и использовать его вместо прежнего.

Например, следующий GraphQL query может заменить 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
  }
}

Благодаря иерархии API, persisted query публикуется по пути /graphql-query/wp/v2/posts/, что упрощает сопоставление эндпоинтов.

Чтобы воспроизвести REST-эндпоинт /wp-json/wp/v2/posts/{id}/, который извлекает данные записи с заданным ID, можно передать ID записи через параметр URL postId.

Например, следующий persisted query можно вызвать по эндпоинту /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
  }
}