'Enum String' türleri
Bazı bilgiler yalnızca önceden tanımlanmış bir kümeden gelen bir değere sahip olabilir; bu durum idealde bir Enum türü kullanılarak modellenmelidir. Ancak enum türlerinin değerlerinin "-" karakterini içerememesi gibi bir kısıtlaması vardır ve bundan kaçınılmasının mümkün olmadığı durumlar da vardır.
Örneğin, sorgulanabilecek tüm özel gönderi türlerini (yani sitede kayıtlı olan ve sorgulanmasına izin verilmiş olanları) listeleyen bir CustomPostEnum enum türüne sahip olmak mantıklı olacaktır. Ancak özel gönderi türleri, aşağıdaki "some-custom-cpt" örneğinde olduğu gibi adlarında "-" karakteri içerebilir:
{
customPosts(
filter: {
customPostTypes: ["post", "product", "some-custom-cpt"]
}
) {
# ...
}
}Bu kısıtlama nedeniyle bu tür bir enum türü olamaz. Bunun yerine Gato GraphQL, bunu özel bir "Enum String" türü olarak uygular; bu tür, Enum'a benzer şekilde yalnızca önceden tanımlanmış bir kümeden değer alabilen bir String türüdür.
GraphQL şemasında uygulanan EnumString türlerine örnek olarak şunlar verilebilir:
CustomPostEnumStringTagTaxonomyEnumStringCategoryTaxonomyEnumStringMenuLocationEnumString
İçgözlem: "Enum String" türleri için olası değerlerin sorgulanması
Her EnumString türü için kabul edilen değerlerin listesini içgözlem aracılığıyla alabiliriz:
query EnumStringTypePossibleValues {
__schema {
types {
name
extensions {
# This will print the enum-like "possible values" for EnumString type resolvers, or `null` otherwise
possibleValues
}
}
}
}