GraphQL

GraphQLのクエリの引数で配列を使いたい時

スキーマ

query {
  harvest(fruits: [String!]!): Bool!
}

呼び出し

const fruits = ['apple', 'grape']
callAPI(`query {
  harvest(fruits: ${fruits})
}`)

こう書いてしまうとテンプレート文字列のなかの ${fruits}"apple,grape" と展開され配列にならないので、

正しい呼び出し

const fruits = ['apple', 'grape']
const arrayToString = array => array.map(e => `"${e}"`).join(',')
callAPI(`query {
  harvest(fruits: [${arrayToString(fruits)}])
}`)

のように変換をかけてあげて '["apple", "grape"]' のような形式になるようにしましょう。 少し嵌った。

RDBアダプタ

EasyのHasura、SimpleのPrisma

参考文献