시작하기
시작하기WP REST API를 Gato GraphQL로 교체하기

WP REST API를 Gato GraphQL로 교체하기

애플리케이션이 WP REST API를 사용하고 있다면, 대신 Gato GraphQL을 사용할 수 있습니다.

Persisted Queries 확장을 사용하면 GraphQL로 구성된 REST 방식의 엔드포인트를 공개할 수 있습니다.

애플리케이션의 각 REST 엔드포인트에 대해, 동일한 데이터를 가져오는 퍼시스티드 쿼리 엔드포인트를 만들고 그 엔드포인트를 대신 사용할 수 있습니다.

예를 들어, 다음 GraphQL 쿼리는 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 계층 구조 덕분에 퍼시스티드 쿼리를 /graphql-query/wp/v2/posts/ 경로 아래에 공개할 수 있어, 엔드포인트 매핑이 쉬워집니다.

지정된 ID의 게시물 데이터를 가져오는 REST 엔드포인트 /wp-json/wp/v2/posts/{id}/를 재현하려면, URL 파라미터 postId에 게시물 ID를 제공하면 됩니다.

예를 들어, 다음 퍼시스티드 쿼리는 엔드포인트 /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
  }
}