Я помещаю оболочку GraphQL поверх выходящего REST API, как описано в Zero to GraphQL за 30 минут. У меня есть конечная точка API для продукта с одним свойством, которое указывает на вложенный объект:
// API Response
{
entity_id: 1,
nested_object: {
key1: val1,
key2: val2,
...
}
}
Можно ли определить схему, чтобы я мог получить весь этот вложенный объект без явного определения вложенного объекта и всех его свойств? Я хочу, чтобы мой запрос просто указывал, что я хочу вложенный объект, и не нужно указывать все свойства, которые я хочу, из вложенного объекта:
// What I want
{
product(id: "1") {
entityId
nestedObject
}
}
// What I don't want
{
product(id: "1") {
entityId
nestedObject {
key1
key2
...
}
}
}
Я могу сделать вторую версию, но она требует большого количества дополнительного кода, включая создание NestedObjectType
и указание всех вложенных свойств. Я также выяснил, как автоматически получить список всех ключей, например:
const ProductType = new GraphQLObjectType({
...
fields: () => ({
nestedObject: {
type: new GraphQLList(GraphQLString),
resolve: product => Object.keys(product.nested_object)
}
})
})
Я не понял способ автоматического возврата всего объекта.