'Enum String'-typen
Bepaalde informatie kan alleen een waarde uit een vooraf gedefinieerde set hebben, wat idealiter gemodelleerd zou moeten worden met een Enum-type. Enum-typen hebben echter de beperking dat hun waarden het "-"-teken niet mogen bevatten, en er zijn situaties waarin dit niet te vermijden is.
Het zou bijvoorbeeld zinvol zijn om een CustomPostEnum-enum-type te hebben met een lijst van alle custom post types die bevraagd kunnen worden (d.w.z. die geregistreerd zijn in de site en waarvan bevragen is toegestaan). Custom post types kunnen echter het "-"-teken in hun namen bevatten, zoals in het voorbeeld "some-custom-cpt" hieronder:
{
customPosts(
filter: {
customPostTypes: ["post", "product", "some-custom-cpt"]
}
) {
# ...
}
}Door deze beperking kan dit type geen enum-type zijn. In plaats daarvan implementeert Gato GraphQL het als een aangepast "Enum String"-type, dat een String-type is dat alleen een waarde uit een vooraf gedefinieerde set kan ontvangen, vergelijkbaar met een Enum.
Voorbeelden van EnumString-typen die in het GraphQL-schema zijn geïmplementeerd:
CustomPostEnumStringTagTaxonomyEnumStringCategoryTaxonomyEnumStringMenuLocationEnumString
Introspectie: mogelijke waarden opvragen voor de "Enum String"-typen
Je kunt de lijst met geaccepteerde waarden voor elk EnumString-type opvragen via introspectie:
query EnumStringTypePossibleValues {
__schema {
types {
name
extensions {
# This will print the enum-like "possible values" for EnumString type resolvers, or `null` otherwise
possibleValues
}
}
}
}