Berlangganan field ke tipe
Gato GraphQL menggunakan pola Publish-subscribe agar field dapat "berlangganan" ke tipe, di mana entitas FieldResolver menambahkan field ke entitas TypeResolver.
Dalam contoh ini, kelas UserFieldResolver menambahkan field username, email, dan url ke kelas UserTypeResolver, yang menyelesaikan tipe User:
class UserFieldResolver extends AbstractDBDataFieldResolver
{
public static function getClassesToAttachTo(): array
{
return [UserTypeResolver::class];
}
public static function getFieldNamesToResolve(): array
{
return [
'username',
'email',
'url',
];
}Tipe User tidak mengetahui sebelumnya field apa yang akan dipenuhinya, melainkan field-field tersebut (username, email, dan url) disuntikkan ke tipe oleh field resolver.
Dengan cara ini, skema GraphQL menjadi mudah diperluas: cukup dengan menambahkan field resolver, ekstensi apa pun dapat menambahkan field baru ke tipe yang sudah ada (seperti field User.shippingAddress), atau menggantikan cara sebuah field diselesaikan (seperti mendefinisikan ulang User.url untuk mengembalikan situs web pengguna).