Saltar al contenido

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.

Rutas de aprendizaje