【发布时间】:2019-06-04 18:11:39
【问题描述】:
所以我试图弄清楚如何将一组对象从 POST 请求传递到 AWS lambda 上的 apollo 服务器。
我已经检查过了,但这不是同一个问题 Array of objects convert into object of objects when I use Apollo
post 请求如下所示...
api.post('query', { query : `mutation {saveNewItem(description: "${description}", specials: ${JSON.stringify(specials)}){name}}`})
// comment to get rid of silly scroll bar overlapping code
架构看起来像这样...
const { gql } = require('apollo-server-lambda')
const typeDefs = gql`
type ShoppingItem {
description: String
specials: [Specials]
}
input Specials {
description: String
price: String
qty: String
saved: String
}
type Mutation {
saveNewItem(description: String!, specials: [Specials]) : ShoppingItem
}
`
示例特价商品如下所示...
[{ // Object One
description: "First One"
price: "1.00"
qty: "1"
saved: "false"
},{ // Object two
description: "Second One"
price: "1.00"
qty: "1"
saved: "false"
}]
我目前得到的错误是......
'Error: The type of ShoppingItem.specials must be Output Type but got: [Specials].',
'at assertValidSchema (/Users/me/Desktop/Projects/app/build/node_modules/graphql/type/validate.js:71:11)',
如果我将其更改为普通的“类型”,它会抱怨它不是输入类型。
我也浏览过 apollo 服务器文档,但不太明白我做错了什么?
请正如 Daniel 在 cmets 中提到的那样,虽然从技术上讲,给出的“重复”答案是正确的,但这里提供的信息质量更高,对面临问题的人有用(在我看来)
【问题讨论】:
-
谢谢丹尼尔,让我读一读,我可能有点累了。
-
我在这里的评论是 Apollo-server 与这些答案有点不同,尽管我试图弄清楚如何应用逻辑,正如你所说的那样它可以工作,我只是了解它。
-
我可以建议不要关闭它,因为您的解释比下面的解释要好得多。
标签: graphql apollo-server