Typen 'Enum String'
Bestimmte Informationen können nur einen Wert aus einer vordefinierten Menge haben, was idealerweise mit einem Enum-Typ modelliert werden sollte. Enum-Typen haben jedoch die Einschränkung, dass ihre Werte das Zeichen "-" nicht enthalten dürfen, und es gibt Situationen, in denen das nicht vermeidbar ist.
Zum Beispiel wäre es sinnvoll, einen Enum-Typ CustomPostEnum zu haben, der alle Custom Post Types auflistet, die abgefragt werden können (d. h. diejenigen, die auf der Website registriert sind und für die das Abfragen erlaubt wurde). Custom Post Types können jedoch das Zeichen "-" in ihren Namen enthalten, wie im Beispiel "some-custom-cpt" unten:
{
customPosts(
filter: {
customPostTypes: ["post", "product", "some-custom-cpt"]
}
) {
# ...
}
}Aufgrund dieser Einschränkung kann dieser Typ kein Enum-Typ sein. Stattdessen implementiert Gato GraphQL ihn als benutzerdefinierten "Enum String"-Typ, der ein String-Typ ist, der nur einen Wert aus einer vordefinierten Menge annehmen kann, ähnlich wie ein Enum.
Beispiele für EnumString-Typen, die im GraphQL-Schema implementiert sind:
CustomPostEnumStringTagTaxonomyEnumStringCategoryTaxonomyEnumStringMenuLocationEnumString
Introspektion: Mögliche Werte für die "Enum String"-Typen abfragen
Wir können die Liste der akzeptierten Werte für jeden EnumString-Typ per Introspektion abrufen:
query EnumStringTypePossibleValues {
__schema {
types {
name
extensions {
# This will print the enum-like "possible values" for EnumString type resolvers, or `null` otherwise
possibleValues
}
}
}
}