Yanonoblog!

こつこつと

GraphQL - 引数とエイリアス

はじめに

GraphQLのドキュメントを読んでまとめていきます。

ところどころ気になった部分を調べて補足したり解釈を入れています。

https://graphql.org/learn/queries/

フィールドへの引数の追加

GraphQLは、オブジェクトとそのフィールドを探索するだけでなく、フィールドに引数を渡すことも可能です。

サンプルクエリ

{
  animal(id: "A123") {
    species
    weight
  }
}

サンプル結果

{
  "data": {
    "animal": {
      "species": "Tiger",
      "weight": 220.5
    }
  }
}

複数の引数の利用

RESTのようなシステムでは、一連の引数のみを渡すことができますが、GraphQLでは、各フィールドやネストされたオブジェクトに独自の引数セットを渡すことができます。

サンプルクエリ

{
  animal(id: "A123") {
    species
    weight(unit: KILOGRAM)
  }
}

サンプル結果

{
  "data": {
    "animal": {
      "species": "Tiger",
      "weight": 220.5
    }
  }
}

エイリアスの使用

結果オブジェクトのフィールドはクエリのフィールド名と一致しますが、引数は含まれません。

そのため、異なる引数で同じフィールドを直接クエリすることはできません。これがエイリアスが必要となる理由です。

サンプルクエリ

{
  savannahAnimal: creature(type: SAVANNAH) {
    species
  }
  jungleAnimal: creature(type: JUNGLE) {
    species
  }
}

サンプル結果

{
  "data": {
    "savannahAnimal": {
      "species": "Lion"
    },
    "jungleAnimal": {
      "species": "Jaguar"
    }
  }
}

おしまい

コメント

本記事の内容は以上になります!