19

私はGraphQLが初めてです。私はそれが非常に基本的な質問であることを知っています。しかし、多くの時間を費やしてみましたが、うまくいきませんでした。

私の要件は、Java クラスから graphql-java api メソッドを使用して GraphQL クエリを送信する必要があることです。

クエリは次のとおりです。

{
  contentItem(itemId: 74152479) {
    slug
    updatedAt
    contributors {
      id
      isFreeForm
      name
    }
  }
}
4

3 に答える 3

2

vertx-graphql-client に実装されているソリューションがあります。

GraphQL クエリを普遍的に作成するプロセスは次のとおりです。

  1. 変数を使用してクエリを書き直す

したがって、クエリは次のようになります。

query contentItem($itemId: Int){
  contentItem(itemId: $itemId) {
    slug
    updatedAt
    contributors {
      id
      isFreeForm
      name
    }
  }
}
  1. HTTP POST リクエストを介してクエリを送信します

    • header: にcontent-type設定application/json

    • body: 本文は、次の JSON データをシリアル化することによって設定されます。

{
    "query": "the-templated-query-above",
    "operationName": "contentItem",
    "variables": {
        "itemId": 74152479
    }
}

curl を使用すると、次のように簡単になります。

curl \
    -X POST \
    -H "Content-Type: application/json" \
    --data '{ "query": "the-templated-query-above", "operationName": "contentItem", "variables": {  "itemId": 74152479 }}' \
    http://www.yoursite.com/your/graphql/api
于 2020-02-02T11:42:37.237 に答える