Sema Ad Alanı Belirleme
Plugin'ler tarafından semaya eklenen tüm türlerin ve arayüzlerin otomatik olarak ad alanı almasını sağlayın.
Sema ad alanı belirleme, farklı sahiplerin (örneğin şirketteki farklı ekipler veya üçüncü taraf plugin'ler) bir tür ya da arayüz için aynı adı kullandığında ortaya çıkan adlandırma çakışmalarını önler.
Örneğin, "AwesomeWP" şirketinin Tutorials ve Sales ekiplerinin her ikisinin de şirketin GraphQL seması için bir Product türü oluşturduğunu ve bir çakışmaya yol açtığını düşünelim.
Semaya ad alanı belirlenerek, iki tür otomatik olarak AwesomeWPTutorialsProduct ve AwesomeWPSalesProduct adlarına dönüştürülür; böylece semayı elle değiştirmek ya da ekiplerin birbirleriyle iletişim kurması gerekmeden çakışma önlenir.
WordPress veri modelindeki varlıklar ad alanı almaz
WordPress veri modeli kanonik kabul edilir ve GraphQL şema türleri (Post ve User gibi) ile arayüzleri (Commentable ve WithMeta gibi) ad alanı almaz.
Uç noktalarda sema ad alanı belirleme
Semanın ad alanı alıp almayacağını tanımlayabileceğimiz 2 düzey vardır. Öncelik sırasıyla:
1. Sema yapılandırmasında
Özel bir uç nokta veya persisted query için sema ad alanı belirleme, ilgili sema yapılandırması aracılığıyla tanımlanabilir:

2. Ayarlarda tanımlanan varsayılan mod
Sema yapılandırmasının değeri "Default" ise, Ayarlarda tanımlanan mod kullanılır:

Ad alanlı semayı görselleştirme
Ad alanlı semayı görselleştirmek için Voyager client kullanın.
Namespacing devre dışı bırakıldığında, WordPress seması şu şekilde görünür:

Etkinleştirildiğinde, plugin'ler tarafından eklenen türler ve arayüzler ad alanı alır ve şu şekilde görünür:

(Ad alanlı olmayan) tür adlarını sorgulama
Namespacing etkinleştirildikten sonra, türler hem ad alanlı hem de ad alansız tür adları kullanılarak sorgulanabilir. Dolayısıyla, yalnızca çakışan türleri içeren queries düzenlenmesi gerekir; hepsi değil.
Örneğin, AwesomeWP'nin Sales ekibinin aynı zamanda bir Discount türü varsa, bu tür adını isteyen bir query yine de çalışır:
query {
discounts {
...DiscountProps
}
}
fragment DiscountProps on Discount {
price
dateRange
}Yalnızca çakışan Product türü, herhangi bir belirsizliği ortadan kaldırmak için query'de AwesomeWPSalesProduct olarak güncellenmelidir:
query {
products {
...ProductProps
}
}
fragment ProductProps on AwesomeWPSalesProduct {
price
dateRange
}GraphQL spesifikasyonu
Bu işlevsellik şu anda GraphQL spesifikasyonunun bir parçası değildir, ancak şu konuda talep edilmiştir: