NerdGraphは、データをクエリし、NewRelic機能を構成するためのメインAPIです。NerdGraphを使用してAPIリクエストを行う一般的な方法の1つは、NerdGraphエクスプローラーを使用することです。
エクスプローラーを探す
NerdGraphエクスプローラーを見つけるには:
- EUの場合:New RelicアカウントがEUデータセンターを使用している場合は、 api.eu.newrelic.com/graphiqlにアクセスしてください。
- EU外:アカウントがEU外にある場合は、 api.newrelic.com/graphiqlを使用してください。
NerdGraphエクスプローラーとは何ですか?
NerdGraph APIは、サードパーティのクエリ言語であるGraphQLを使用して構築されています。NerdGraphエクスプローラーは、GraphQLリクエストを作成および作成するためのオープンソースのグラフィカルインターフェイスであるGraphiQLを使用して構築されています。
NerdGraphエクスプローラーを使用して、データスキーマを探索したり、組み込みのオブジェクト定義を読み取ったり、クエリを作成して実行したりできます。
エクスプローラーの使用方法を示す短いビデオを見るには、NerdGraphの概要を参照してください。
あなたが始める前に
ここでレッスンを行う前に、NerdGraphの概要を確認してください。
エクスプローラーに移動し、 NewRelicのユーザーIDとパスワードを使用してログインします。
有効なNewRelicユーザーキーがあることを確認してください。NerdGraphエクスプローラーから作成するか、 APIキーUIで表示して作成できます。
次に、エクスプローラーの使い方を学ぶのに役立ついくつかの手順を説明します。
ステップ1.名前を取得するためのクエリを作成します
簡単なNerdGraphクエリから始めましょう。NewRelicデータベースで自分の名前を検索します。
- クエリエディタですべてを消去します。
- クエリエクスプローラーで次のフィールドをこの順序で選択します:
actor
、user
、name
。
このGraphQLスニペットがエディターに表示されます。
{ actor { user { name } }}
ステップ2.再生ボタンをクリックして結果を確認します
このクエリでは、NerdGraphに自分の名前を取得するように指示しています。user
フィールド内にネストされているname
フィールドを要求しています。これは、 APIキーを所有するユーザーを指します。APIキーはactor
内にネストされています。
[再生]ボタンをクリックして結果を確認します。リクエストとほぼ同じ形状です。クエリビルダーのすべてのフィールドは、GraphQLスキーマと呼ばれるものを構成します。このスキーマは、使用可能なすべてのデータ型とその属性を記述します。各フィールドの詳細については、[ドキュメント]ボタンをクリックするか、エディターのフィールドにカーソルを合わせてください。
ステップ3.クエリにフィールドを追加します
これで、クエリにフィールドを追加してみることができます。最も簡単な方法は、クエリビルダーのフィールドをクリックすることです。エクスプローラーは、属性をクエリのどこに配置するかを知っています。この例では、アカウントのid
}フィールドとemail
フィールドを追加します。
クエリを実行すると、データをオーバーフェッチまたはアンダーフェッチせずに、必要なデータのみが返されます。id
フィールドに引数があることに注意してください。引数を渡すことは、NerdGraphクエリをカスタマイズするための強力な方法です。すべてのフィールドとオブジェクトには引数を含めることができるため、複数のクエリを実行する代わりに、必要なクエリを作成するだけです。
{ actor { user { name email } account(id: 12345678) }}
ステップ4.突然変異を試す
GraphQLでは、ミューテーションは、オブジェクトを作成、更新、または削除することでデータを変更できる副作用のあるクエリを実行する方法です(REST APIでは、これらは一般にCRUD操作と呼ばれます)。
最初の突然変異の準備はできていますか?
- エディターの内容を消去します。
- クエリビルダーを下にスクロールして、
mutation
を展開します。 - 次のスクリーンショットのフィールドを選択します。
この場合、エンティティにカスタムタグを追加しようとしています。errors
を選択しないと、エディターが文句を言うことに注意してください。ミューテーションには、バックエンドで操作がどのように実行されたかを通知する方法が必要です(リクエストが失敗すると応答がnullになります)。
ヒント
RESTとは異なり、NerdGraphのようなGraphQLAPIは部分的な応答を返すことができます。たとえば、複数のエンティティにタグを追加しようとすると、一部のミューテーションが失敗し、他のミューテーションが成功する可能性があります。取得したGraphQL応答にすべてが記録されます。
ステップ5.ターミナルでNerdGraphクエリを試してください
満足のいくNerdGraphクエリを作成し、それを他の場所でテストしたいとします。コード対応のクエリとミューテーションをキャプチャするには:
- [ツール]メニューを選択します。
- クエリをcurl呼び出しまたはNewRelicCLIコマンドとしてコピーします。
$# 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リクエストの他の例を次に示します。