Tipos 'Enum String'
Certas informações só podem ter um valor proveniente de um conjunto predefinido, o que idealmente deveria ser modelado usando um tipo Enum. Entretanto, os tipos enum têm a limitação de que seus valores não podem incluir o caractere "-", e há situações em que isso não pode ser evitado.
Por exemplo, faria sentido ter um tipo enum CustomPostEnum, listando todos os custom post types que podem ser consultados (ou seja, aqueles registrados no site e que foram autorizados a serem consultados). Entretanto, os custom post types podem incluir o caractere "-" em seus nomes, como no exemplo "some-custom-cpt" abaixo:
{
customPosts(
filter: {
customPostTypes: ["post", "product", "some-custom-cpt"]
}
) {
# ...
}
}Por causa dessa limitação, esse tipo não pode ser um tipo enum. Em vez disso, Gato GraphQL o implementa como um tipo personalizado "Enum String", que é um tipo String que pode receber apenas um valor de um conjunto predefinido, similar a um Enum.
Exemplos de tipos EnumString implementados no schema GraphQL incluem:
CustomPostEnumStringTagTaxonomyEnumStringCategoryTaxonomyEnumStringMenuLocationEnumString
Introspecção: consultando os valores possíveis para os tipos "Enum String"
Podemos recuperar a lista de valores aceitos para cada tipo EnumString via introspecção:
query EnumStringTypePossibleValues {
__schema {
types {
name
extensions {
# This will print the enum-like "possible values" for EnumString type resolvers, or `null` otherwise
possibleValues
}
}
}
}