Mengonfigurasi skema
Mengonfigurasi skemaMelakukan query pada field 'self'

Melakukan query pada field 'self'

Terkadang kita perlu mengubah bentuk respons, untuk meniru respons yang sama dari server GraphQL lain, atau dari REST API.

Kita dapat melakukannya melalui field self, yang ditambahkan ke semua tipe dalam skema GraphQL, yang mengembalikan objek yang sama tempat field tersebut diterapkan:

type QueryRoot {
  self: QueryRoot!
}
 
type Post {
  self: Post!
}
 
type User {
  self: User!
}

Cara kerjanya

Field self memungkinkan penambahan level ekstra pada query tanpa meninggalkan objek yang sedang di-query. Menjalankan query ini:

{
  __typename
  self {
    __typename
  }
  
  post(by: {id: 1}) {
    self {
      id
      __typename
    }
  }
  
  user(by: {id: 1}) {
    self {
      id
      __typename
    }
  }
}

...menghasilkan respons ini:

{
  "data": {
    "__typename": "QueryRoot",
    "self": {
      "__typename": "QueryRoot"
    },
    "post": {
      "self": {
        "id": 1,
        "__typename": "Post"
      }
    },
    "user": {
      "self": {
        "id": 1,
        "__typename": "User"
      }
    }
  }
}

Cara menggunakannya

Gunakan self untuk secara artifisial menambahkan level ekstra yang diperlukan pada respons, dan alias field untuk memberi nama ulang level tersebut secara tepat.

Misalnya, query ini merekonstruksi bentuk dari server GraphQL lain:

{
  categories: self {
    edges: postCategories {
      node: self {
        name
        slug
      }
    }
  }
}

Query ini merekonstruksi bentuk dari WP REST API:

{
  post(by: {id: 1}) {
    content: self {
      rendered: content
    }
  }
}

Menambahkan field self ke endpoint

Penambahan field self ke skema dapat dikonfigurasi sebagai berikut, sesuai urutan prioritas:

✅ Mode spesifik untuk custom endpoint atau persisted query, yang didefinisikan dalam konfigurasi skema

Menambahkan field self ke skema, diatur dalam Schema configuration

✅ Mode default, yang didefinisikan dalam Settings

Jika konfigurasi skema memiliki nilai "Default", maka mode yang didefinisikan dalam Settings akan digunakan:

Mengatur field self untuk konfigurasi skema, dalam Settings
Mengatur field self untuk konfigurasi skema, dalam Settings

Kapan menggunakannya

Field self dapat digunakan untuk menyesuaikan bentuk respons GraphQL dengan bentuk tertentu yang dibutuhkan, seperti bentuk dari server GraphQL lain, atau dari REST API.