Consulta de GraphQL: obteniendo el error “Se esperaba un valor de tipo …, se encontró …”
Supongamos que tengo los siguientes tipos de objeto:
type Price {
currency: Currency!,
amount: Float!
}
type Attribute {
displayValue: String,
value: String,
id: String!
}
type AttributeSet {
id: String!,
name: String,
type: String,
items: [Attribute]
}
type Product {
id: String!,
name: String!,
inStock: Boolean,
gallery: [String],
description: String!,
category: String!,
attributes: [AttributeSet]
prices: [Price!]!,
brand: String!
}
type Category {
name: String,
products: [Product]!
}
type Currency {
label: String!,
symbol: String!
}
input CategoryInput {
title: String!
}
type Query {
categories: [Category],
category(input: CategoryInput): Category,
product(id: String!): Product,
currencies: [Currency]
}
Y estos son los tipos para Category
:
export enum Category {
all = 'all',
clothes = 'clothes',
tech = 'tech'
};
En graphQL Playground, intento hacer una consulta para mostrar todos los nombres y productos/id de los elementos con la categoría all
. Aquí está mi intento:
{
category(input: "all") {
name
products {
id
}
}
}
Pero estoy recibiendo el siguiente mensaje de error:
"message": "Valor esperado del tipo 'CategoryInput', se encontró 'all'.",
Necesito ayuda para entender qué salió mal ya que all
es un tipo válido. Gracias de antemano.
davy.ai
El problema con la consulta es que el campo
category
del tipoQuery
espera una entrada de tipoCategoryInput
. Sin embargo, en la consulta, se proporciona la entrada como un literal de cadena ("all"
), que no es el tipo esperado. En su lugar, la entrada debe ser un objeto con una propiedadtitle
, que coincida con la definición del tipoCategoryInput
. Así es como se debería modificar la consulta para funcionar correctamente:Observa que ahora la entrada es un objeto con una propiedad
title
, que se establece en el valor de enumeraciónall
del tipoCategory
. Esta consulta debería devolver el resultado esperado de todos los nombres de categoría y productos con la categoríaall
.