NerdGraph は、データのクエリや New Relic 機能の設定変更に使用できる GraphQL API です。コードから、curl または CLI リクエストを使用して、NerdGraph API エクスプローラーでなど、さまざまな方法で GraphQL を NerdGraph API に送信できます。エクスプローラーは、NerdGraph でクエリやミューテーション (変更) を実験できる GUI GraphQL ツール (GraphiQL ベース) です。
GraphQL を初めて使用する場合は、NerdGraph API エクスプローラーを介して GraphQL API について学びましょう。このチュートリアルを開始する前に API の概要が必要な場合は、 「NerdGraph の紹介: GraphQL API」を参照してください。
NerdGraph API エクスプローラーをセットアップする
one.newrelic.com > All capabilities > Apps > NerdGraph API explorerに移動します。
User key [ユーザーキー]フィールドにAPIユーザーキーを入力し、 Submit [送信] をクリックします。 APIキーUIからキーをコピーする必要があります。
自分の名前を取得するクエリを作成する
GraphQL API であなたの名前を検索するための簡単な NerdGraph クエリから始めましょう。
以下にデフォルトのクエリが表示されない場合は、クエリ エディターですべてを消去し、クエリ エクスプローラーで次のフィールドをこの順序で選択します: actor
、 user
、 name
:
{ actor { user { name } }}
このクエリでは、NerdGraph に、 user
フィールド内にネストされているname
フィールドを取得するように依頼しています。user
フィールドはユーザー キーの所有者を参照し、 user
はactor
(API ユーザーのアクセス レベルを範囲とするすべてのデータへの最上位エントリ) 内にネストされています。
クエリを実行する
赤いExecute queryボタンをクリックします。 結果はリクエストとほぼ同じ形になることに注意してください。 クエリビルダー内のすべてのフィールドは、使用可能なすべてのデータ型とその属性を記述する GraphQL スキーマを構成します。 各フィールドの詳細については、フィールドの横にある虫眼鏡アイコンをクリックしてください。
クエリにフィールドを追加する
ここで、クエリにさらにフィールドを追加してみることができます。最も簡単な方法は、クエリ ビルダーでフィールドをクリックすることです。エクスプローラーは、クエリ内のどこに属性を配置するかを知っています。この例では、次のフィールドを追加します。
アカウント
id
(この値は、左下隅にある自分の名前をクリックしてからAPI Keysをクリックすると表示されます)email
クエリを実行すると、データのオーバーフェッチやアンダーフェッチを行わずに、必要なデータのみが返されます。
id
フィールドには引数があることに注意してください。引数を渡すことは、NerdGraph クエリをカスタマイズする強力な方法です。すべてのフィールドとオブジェクトには引数を含めることができるため、複数のクエリを実行する代わりに、必要なクエリを作成するだけで済みます。{actor {user {nameemail}account(id: INSERT_YOUR_OWN_ACCOUNT_ID)}}
突然変異を実験する
GraphQLでは、ミューテーションは、オブジェクトを作成、更新、または削除することでデータを変更できる副作用のあるクエリを実行する方法です(REST APIでは、これらは一般にCRUD操作と呼ばれます)。
最初の突然変異の準備はできていますか?
エディターの内容を消去します。
クエリビルダーを下にスクロールして、
mutation
を展開します。tagging
まで下にスクロールし、taggingAddTagsToEntity
を選択します。次のフィールドを選択します。
guid!:
( All entitiesを開き、エンティティ レコードの...アイコンをクリックして、 See metadata & tagsをクリックすると見つかります)tags!:
key!:
values:
エラー
- メッセージ
- タイプ
この場合、エンティティにカスタム タグを追加します。
errors
を選択しない場合、エディターはエラーを表示します。ミューテーションには、バックエンドで操作がどのように実行されたかを伝える方法が必要です (リクエストが失敗すると null 応答が返されます)。ヒント
RESTとは異なり、NerdGraphのようなGraphQLAPIは部分的な応答を返すことができます。たとえば、複数のエンティティにタグを追加しようとすると、一部のミューテーションが失敗し、他のミューテーションが成功する可能性があります。取得したGraphQL応答にすべてが記録されます。
ターミナルで NerdGraph クエリを試してください
満足のいくNerdGraphクエリを作成し、それを他の場所でテストしたいとします。コード対応のクエリとミューテーションをキャプチャするには:
Toolsメニューを選択します。
クエリを curl 呼び出しまたはNew Relic CLIコマンドとしてコピーします。
bash$# curl version$curl https://api.newrelic.com/graphql \>-H 'Content-Type: application/json' \>-H 'Api-Key: API_KEY_REDACTED' \>--data-binary '{"query":"{\n actor {\n user {\n name\n email\n }\n account(id: 12345678)\n }\n}\n", "variables":""}'$$# New Relic CLI version$newrelic nerdgraph query '{$actor {$user {$name$email$}$account(id: 12345678)$}$}'
次のステップ
これで、NerdGraphクエリの作成とテストの基本を理解しましたが、どのようにしてそれらをクライアントまたはサーバーコードに変換しますか?GraphQLコードジェネレーターなどのソリューションは、NerdGraphクエリを実装用のコードに変換するのに役立ちます。
クエリビルダーでフィールドをクリックしてオブジェクトを展開することにより、より複雑なクエリを作成してみてください(ただし、変更によってアカウントが変更される可能性があるため、変更には注意してください)。以下のセクションでサンプルリクエストのいくつかをチェックしてください。
NerdGraphの詳細と、開発者コミュニティの他のプロジェクトの探索については、 Explorerのハブの投稿を確認してください。
その他のリクエスト例
役立つ可能性のあるNerdGraphリクエストの他の例を次に示します。