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: (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!"
}
}
}
}
出力のモックデータは、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"/>
必要に応じて、他のエンドポイントのクエリを試します。
次の 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":{}}'
このコマンドでは、次の結果が返されます (読みやすくするために手動で再書式設定)。
{ "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
}
}
}
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":{}}'
このコマンドでは、次の結果が返されます (読みやすくするために手動で再書式設定)。
{ "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 実装の応答の設定に進み、各フローに各クエリのカスタム応答を入力します。