En esta entrada vamos a ver cómo obtener Enums en GraphQL con Amplify. Los tipos de enumeración son un tipo especial de escalar que está restringido a un conjunto particular de valores permitidos. Esto nos permite validar que cualquier argumento de este tipo sea uno de los valores permitidos y comunicar a través del sistema de tipos que un campo siempre será uno de un conjunto finito de valores.
Así es la definición de enumeración en el lenguaje de esquema GraphQL:
enum FileType {
IMAGE #Imagen
DOCUMENT #Documento
}Como he comentado, lo que vamos a tratar en esta entrada no es qué son los Enums, sino saber cómo acceder a ellos desde nuestra aplicación utilizando Amplify.
Acceder a Enums en GraphQL
Lo único que debemos hacer es definir y ejecutar la siguiente query:
import { API, graphqlOperation } from "aws-amplify";
const listEnumValues = `query ListEnumValues($enum: String!) {
enum: __type(name: $enum) {
enumValues {
name
}
}
}`;
export default class GraphQLHelper {
async getEnum() {
const { data } = await API.graphql(
graphqlOperation(listEnumValues, { enum: "FileType" })
);
return data;
}
}A partir de ahora simplemente puedes hacer uso de la query ListEnumValues para acceder a cualquier enum que tengas en tu archivo schema.graphql.