Logo

機能:

ネストされたミューテーション

ネストされたミューテーション

GraphQLにおいて、ミューテーションはルートタイプにのみ公開されます。その結果、ルートタイプは肥大化し、ミューテーションであるという技術的な共通点以外に何も関係のないフィールドが大量に含まれることになります(これはインターフェース設計の判断ではなく、技術的な問題です)。

ネストされたミューテーションは、ルートタイプだけでなく任意のタイプでミューテーションを実行できるようにすることで、スキーマをより論理的でブラウズしやすくします。また、別のミューテーションの結果に対してデータを変更できるため、複数のリクエストを実行する際のレイテンシを回避でき、パフォーマンスの向上にも役立ちます。

以下のGraphQLクエリはネストされたミューテーションを示しています:

mutation {
  createPost(input: {
    title: "First title"
  }) {
    status
    postID
    post {
      update(input: {
        title: "Second title",
        contentAs: { html: "Some content" }
      }) {
        status
        post {
          title
          content
          addComment(input: {
            commentAs: { html: "My first comment" }
          }) {
            status
            commentID
            comment {
              content
              date
            }
          }
        }
      }
    }
  }
}

ニュースレターを購読する

Gato GraphQL のすべてのアップデートを把握しましょう。