GraphQLでユーザーにクエリ
このページでは、GraphiQLエクスプローラーを使用してユーザーにクエリを実行する方法について説明します。
同じクエリを HTTP エンドポイント経由で直接実行するには、cURL
を使用します。詳細については、コマンドラインから始めるためのガイダンスを参照してください。
例のユーザークエリは、GitLab インスタンスのユーザーのサブセットをユーザー名かグローバル ID で探します。クエリには以下のものが含まれます:
pageInfo
ページネーションの実装に必要なデータがコンテナに含まれています。GitLab はカーソルベースのページ分割を使います。詳細については、GraphQL ドキュメントのPaginationを参照ください。
nodes
GraphQL クエリでは、nodes
はグラフ](https://en.wikipedia.org/wiki/Vertex_(graph_theory))上の[nodes
のコレクションを表すために使用されます。この場合、ノードのコレクションはUser
オブジェクトのコレクションです。それぞれについて、出力します:
- そのユーザーの
id
。 -
membership
フラグメント。そのユーザーが属するプロジェクトやグループのメンバーシップを表します。フラグメントの出力は、...memberships
記法で表します。
GitLab GraphQL APIは広範囲に渡っており、様々なエンティティの大量のデータを出力することができます。最新の情報については、公式のリファレンスドキュメントを参照してください。
GraphiQLエクスプローラの設定
この手順では、GraphiQLエクスプローラーにコピー&ペーストできる実質的な例を示します。GraphiQLエクスプローラーは以下の用途に使用できます:
- GitLab.comユーザーhttps://gitlab.com/-/graphql-explorer。
- 自己管理ユーザー
https://gitlab.example.com/-/graphql-explorer
。
-
以下のコードをコピーしてください:
{ users(usernames: ["user1", "user3", "user4"]) { pageInfo { endCursor startCursor hasNextPage } nodes { id username, publicEmail location webUrl userPermissions { createSnippet } } } }
- GraphiQLエクスプローラーツールを開きます。
- GraphiQL エクスプローラー ツールの左ウィンドウに上記の
query
を貼り付けます。 - 再生」を選択すると、このような結果が得られます:
この GraphQL クエリは、リストされたユーザー名を持つ 3 人のユーザーの指定された情報を返します。GraphiQL エクスプローラーはセッション トークンを使用してリソースへのアクセスを作成するため、出力は現在認証されているユーザーがアクセス可能なプロジェクトとグループに限定されます。
インスタンス管理者としてサインインした場合は、所有者に関係なくすべてのレコードにアクセスできます。
管理者としてサインインしている場合、admins: true
パラメータをクエリに追加し、2 行目を次のように変更することで、インスタンスの一致する管理者だけを表示できます:
users(usernames: ["user1", "user3", "user4"], admins: true) {
...
}
または、すべての管理者を取得することもできます:
users(admins: true) {
...
}
詳細については
- フラグメントやインターフェースなどのGraphQL固有のエンティティについては、GraphQLの公式ドキュメントを参照してください。
- 個々の属性については、GraphQL APIリソースを参照してください。