Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerGraphQL プロジェクトを変更する前に、アプリケーションを IDE 内でローカルで実行してエンドポイントをテストします。
『GraphQL API の実装』を完了します。
Mule アプリケーションを IDE 内でローカルにデプロイするには、Anypoint Code Builder でデバッグセッションを実行します。
Anypoint Code Builder で [Books Implementation (ブック実装)] プロジェクトを開きます。
アクティビティバーの ([Run and Debug (実行およびデバッグ)]) アイコンをクリックし、[Start Debugging (F5) (デバッグを開始 (F5))] アイコンをクリックします。
IDE から、コンソールのターミナルウィンドウを開きます。
デスクトップ IDE で、[View (表示)] > [Terminal (ターミナル)] を選択する。
クラウド IDE で、 (メニュー) アイコンをクリックし、[Terminal (ターミナル)] > [New Terminal (新規ターミナル)] を選択する。
いずれかの IDE で、Ctrl キーを押してからバッククォートキー (`) を押す。
ターミナルで、プラス (+) アイコンをクリックして新しいコマンドプロンプトを開きます。次に例を示します。
または、プラス (+) アイコンの横にある v メニュー (逆キャレット) をクリックして、使用するコマンドシェル (bash など) を選択します。
シェルのプロンプトから次の curl
コマンドを実行して、bookById フローをトリガーします。
curl --request POST \ --location 'http://localhost:8081/graphql' \ --header 'Content-Type: application/json' \ --data '{ "query": "query bookById($id: ID) {bookById(id: $id){ id name pageCount author{ id firstName lastName}}}", "variables": { "id": 1 } }'
curl
エラー「curl: (7) Failed to connect to localhost port 8081 after 0 ms: Couldn’t connect to server (curl: (7) ローカルホストポート 8081 に接続できませんでした (0 ms 経過): サーバーに接続できませんでした)」
が発生したら、アプリケーションを停止して、デバッグモードで再実行します。アプリケーションの停止に関する指針は、『Mule アプリケーションのデバッグ』を参照してください。
Postman などのツールでは、GraphQL クエリをビルドする方法が提供されます。たとえば、Postman では、クエリを [Body (本文)] タブに配置して、curl 要求のコードスニペットを見つけることができます。結果のコマンドには、curl コマンドの --data 値から削除できる改行 (\\n ) とタブ (\\t ) 文字が含まれます。詳細は、Postman ドキュメントの 「Make an HTTP call with GraphQL (GraphQL を使用した HTTP コールの実行)」 |
Anypoint Code Builder からターミナルに次の出力が返されます (読みやすくするために手動で再書式設定)。
{ "data": { "bookById": { "id":"#myID", "name":"This is some example data", "pageCount":100, "author": { "id":"urn:uuid:123e4567-e89b-12d3-a456-426655440000", "firstName":"This is some example data", "lastName":"Hello World!" } } } }
GraphQL
出力のモックデータは、Query.bookById フロー (<flow name="Query.bookById"/>
) に含まれる Set Payload コンポーネントの文字列から取得されます。
<set-payload value="{
 "id": "some-id",

"name": "This is some example data",

"pageCount": -2,
 "author": {
 "id":
"urn:uuid:123e4567-e89b-12d3-a456-426655440000",

"firstName": "This is some example data",

"lastName": "This is some example data"
 }
}"
mimeType="application/json"/>
xml
必要に応じて、他のエンドポイントのクエリを試します。
次の curl
コマンドを使用して books
エンドポイントを照会します。
curl --location 'http://localhost:8081/graphql' \ --header 'Content-Type: application/json' \ --data '{"query":"query books { books{ id name pageCount author{ id firstName lastName } }}","variables":{}}'
command
このコマンドでは、次の結果が返されます (読みやすくするために手動で再書式設定)。
{ "data": { "books": [{ "id":"urn:uuid:123e4567-e89b-12d3-a456-426655440000", "name":"This is some example data", "pageCount":1, "author": { "id":"urn:uuid:123e4567-e89b-12d3-a456-426655440000", "firstName":"This is some example data", "lastName":"Hello World!" } }] } }
参考までに、books
エンドポイントは次のような構造になります。
query books { books{ id name pageCount author{ id firstName lastName } } }
GraphQL
Query bestSellers
:
curl --location 'http://localhost:8081/graphql' \ --header 'Content-Type: application/json' \ --data '{"query":"query bestsellers { bestsellers{ books{ id name pageCount author{ id firstName lastName } } authors{ id firstName lastName } } }","variables":{}}'
command
このコマンドでは、次の結果が返されます (読みやすくするために手動で再書式設定)。
{ "data" : {
"bestsellers": {
"books": [{
"id":"#myID",
"name":"This is some example data",
"pageCount":1,
"author": {
"id":"urn:uuid:123e4567-e89b-12d3-a456-426655440000",
"firstName":"This is some example data",
"lastName":"Hello World!"
}
},
{
"id":"some-id",
"name":"Goodbye",
"pageCount":100,
"author": {
"id":"urn:uuid:123e4567-e89b-12d3-a456-426655440000",
"firstName":"This is some example data",
"lastName":"Hello World!"
}
},
{
"id":"urn:uuid:123e4567-e89b-12d3-a456-426655440000",
"name":"Hello World!",
"pageCount":-10,
"author": {
"id":"urn:uuid:123e4567-e89b-12d3-a456-426655440000",
"firstName":"This is some example data",
"lastName":"Hello World!"
}
}],
"authors": [{
"id":"urn:uuid:123e4567-e89b-12d3-a456-426655440000",
"firstName":"Hello World!",
"lastName":"Hello World!"
},
{
"id":"#myID",
"firstName":"Goodbye",
"lastName":"Goodbye"
}]
}
}
}
参考までに、bestsellers
エンドポイントは次のような構造になります。
query bestsellers { bestsellers{ books{ id name pageCount author{ id firstName lastName } } authors{ id firstName lastName } } }
GraphQL
『GraphQL 実装の応答の設定』に進み、各フローに各クエリのカスタム応答を入力します。