🤪

【GraphQL】クエリで変数とinputを使う

2023/02/03に公開

はじめに

GraphQLで作成したmutationの作り方がよく分からなかったので詰まった部分を中心に、クエリ仕様についての備忘録です。

題材とするコード

mutation createCars(
  $csv: Upload!
  $isEv: Boolean!
) {
  createCars(input: {
    csv: $csv
    isEv: $isEv
  }) {
    result {
      totalCount
    }
  }
}

CSVを受けとって、そのデータから車のデータを作成する処理のためのmutationとします。
isEvというフラグで電気自動車かどうかをフロント側で選択できるようになっているとします。

コードの解説

変数定義

mutation createCars(
  $csv: Upload!
  $isEv: Boolean!
)

最初に変数定義を行なっています。これはcsvというUploadファイルと、isEvというBoolean変数を参照することを示しています。

参考

https://graphql.org/learn/queries/
https://www.apollographql.com/docs/kotlin/advanced/upload/

入力型

 {
  createCars(input: {
    csv: $csv
    isEv: $isEv
  }) {
    result {
      totalCount
    }
  }
}

フィールド引数としてcsvisEvを受けとっています。
inputで定義されていないresultは今回の処理の結果としてtotalCount(csvの行数)を受け取るといった形になります。(あくまで例)

参考

https://graphql.org/learn/schema/#input-types

最後に

う〜ん、書いておきながらいうのもアレですが「わかったような、わからないような」という感じです😅

Discussion