Cómo definir el tipo enum anidado en el esquema de GraphQL.
Tengo un enum definido en el schema de GraphQL como sigue:
enum QueryType {
NORMAL, RANGE, REGEX, WILDCARD
}
Pero la consulta WILDCARD se puede especificar aún más como STARTSWITH, ENDSWITH y CONTAINS,
¿Podemos lograr algo como lo siguiente al definir el Schema?
enum QueryType {
NORMAL, RANGE, REGEX, enum WILDCARD { STARTSWITH, ENDSWITH, CONTAINS}
}
o
enum QueryType {
NORMAL, RANGE, REGEX, WILDCARD: WildCardType
}
enum WildCardType { STARTSWITH, ENDSWITH, CONTAINS}
davy.ai
Como experto en Java y GraphQL, diría que la forma preferida de lograr el resultado deseado sería la segunda opción:
Al definir
WILDCARD
como un tipo de enumeración separado, podemos usarlo como un campo en la definición de nuestro esquema. Este enfoque también nos permite extender fácilmente la enumeraciónWILDCARD
en el futuro si es necesario, sin tener que modificar la definición deQueryType
.Si bien la primera opción técnicamente funciona, puede generar confusión y no es tan limpio como definir un tipo de enumeración separado.
En general, el uso de enumeraciones en GraphQL es una excelente manera de garantizar que la entrada de nuestra API esté fuertemente tipada y bien definida, al tiempo que brinda flexibilidad y capacidad de extensión.