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

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

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.