44.6. 例


44.6.1. クエリー

単純なクエリーは URI で直接定義できます。

from("direct:start")
    .to("graphql://http://example.com/graphql?query={books{id name}}")

本文はクエリーにも使用できます。

from("direct:start")
    .setBody(constant("{books{id name}}"))
    .to("graphql://http://example.com/graphql")

クエリーはヘッダーから取得できます。

from("direct:start")
    .setHeader("myQuery", constant("{books{id name}}"))
    .to("graphql://http://example.com/graphql?queryHeader=myQuery")

より複雑なクエリーはファイルに保存し、次のように URI で参照できます。

booksQuery.graphql ファイル:

query Books {
  books {
    id
    name
  }
}

from("direct:start")
    .to("graphql://http://example.com/graphql?queryFile=booksQuery.graphql")

クエリーファイルで複数の操作が定義されている場合は、どの操作を実行するかを指定する必要があります。

from("direct:start")
    .to("graphql://http://example.com/graphql?queryFile=multipleQueries.graphql&operationName=Books")

変数を含むクエリーでは、レジストリーから JsonObject インスタンスを参照する必要があります。

bookByIdQuery.graphql ファイル:

query BookById($id: Int!) {
  bookById(id: $id) {
    id
    name
    author
  }
}

@BindToRegistry("bookByIdQueryVariables")
public JsonObject bookByIdQueryVariables() {
    JsonObject variables = new JsonObject();
    variables.put("id", "book-1");
    return variables;
}

from("direct:start")
    .to("graphql://http://example.com/graphql?queryFile=bookByIdQuery.graphql&variables=#bookByIdQueryVariables")

variablesHeader パラメーターを介して変数にアクセスするクエリー:

from("direct:start")
    .setHeader("myVariables", () -> {
        JsonObject variables = new JsonObject();
        variables.put("id", "book-1");
        return variables;
    })
    .to("graphql://http://example.com/graphql?queryFile=bookByIdQuery.graphql&variablesHeader=myVariables")

44.6.2. ミューテーション

ミューテーションは変数を持つクエリーのようなものです。次のようにクエリーと変数の Bean への参照を指定します。

addBookMutation.graphql ファイル:

mutation AddBook($bookInput: BookInput) {
  addBook(bookInput: $bookInput) {
    id
    name
    author {
      name
    }
  }
}

@BindToRegistry("addBookMutationVariables")
public JsonObject addBookMutationVariables() {
    JsonObject bookInput = new JsonObject();
    bookInput.put("name", "Typee");
    bookInput.put("authorId", "author-2");
    JsonObject variables = new JsonObject();
    variables.put("bookInput", bookInput);
    return variables;
}

from("direct:start")
    .to("graphql://http://example.com/graphql?queryFile=addBookMutation.graphql&variables=#addBookMutationVariables")
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る