Şemayı yapılandırma
Şemayı yapılandırma'self' alanlarını sorgulama

'self' alanlarını sorgulama

Bazen yanıtın şeklini değiştirmemiz gerekir; başka bir GraphQL sunucusundan ya da REST API'den gelen yanıtı taklit etmek için.

Bunu, GraphQL şemasındaki tüm türlere eklenen ve uygulandığı nesneyi olduğu gibi geri döndüren self alanı aracılığıyla yapabiliriz:

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

Nasıl çalışır

self alanı, sorgulanan nesneden ayrılmadan queries'e ekstra düzeyler eklemenizi sağlar. Bu query çalıştırıldığında:

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

...şu yanıt üretilir:

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

Nasıl kullanılır

Yanıt için gereken ekstra düzeyleri yapay olarak eklemek amacıyla self kullanın; bu düzeyleri uygun şekilde yeniden adlandırmak için alan takma adlarından yararlanın.

Örneğin, bu query başka bir GraphQL sunucusunun şeklini yeniden oluşturur:

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

Bu query ise WP REST API'nin şeklini yeniden oluşturur:

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

Endpoint'lere self alanları ekleme

Şemaya self alanları eklenmesi aşağıdaki şekilde yapılandırılabilir; öncelik sırasına göre:

✅ Şema yapılandırmasında tanımlanan özel endpoint veya persisted query için özel mod

Şema yapılandırmasında ayarlanan, şemaya self alanları ekleme

✅ Ayarlarda tanımlanan varsayılan mod

Şema yapılandırmasının değeri "Default" ise Ayarlarda tanımlanan mod kullanılır:

Ayarlarda şema yapılandırması için self alanlarının ayarlanması
Ayarlarda şema yapılandırması için self alanlarının ayarlanması

Ne zaman kullanılır

self alanı, GraphQL yanıtının şeklini başka bir GraphQL sunucusundan veya REST API'den gelene benzer belirli bir şekle uyarlamak için kullanılabilir.