GraphQL로 사용자 쿼리하기
이 페이지는 GraphiQL 탐색기를 사용하여 사용자를 쿼리하는 방법을 설명합니다.
HTTP 엔드포인트를 통해 cURL
을 사용하여 동일한 쿼리를 직접 실행할 수 있습니다. 더 많은 정보는 명령줄에서 시작하는 가이드를 참조하세요.
샘플 사용자 쿼리는 GitLab 인스턴스에서 사용자 이름 또는 Global ID를 통해 사용자 하위 집합을 찾습니다.
쿼리에는 다음이 포함됩니다:
pageInfo
이것은 페이지 매김을 구현하는 데 필요한 데이터를 포함합니다. GitLab은 커서 기반 페이지 매김을 사용합니다. 더 많은 정보는 GraphQL 문서의 Pagination을 참조하세요.
nodes
GraphQL 쿼리에서 nodes
는 nodes
on a graph의 컬렉션을 나타내는 데 사용됩니다.
이 경우, 노드의 컬렉션은 User
객체의 컬렉션입니다. 각 사용자에 대해 우리는 다음을 출력합니다:
- 사용자의
id
. - 해당 사용자가 속한 프로젝트 또는 그룹의 멤버십을 나타내는
membership
프래그먼트. 프래그먼트를 출력하는 것은...memberships
표기법으로 나타냅니다.
GitLab GraphQL API는 방대하며 다양한 엔터티에 대한 많은 데이터를 출력할 수 있습니다. 가장 최신 정보는 공식 참고 문서를 참조하세요.
GraphiQL 탐색기 설정
이 절차는 GraphiQL 탐색기에 복사하여 붙여넣을 수 있는 실질적인 예제를 제공합니다. GraphiQL 탐색기는 다음과 같이 제공됩니다:
- GitLab.com 사용자는 https://gitlab.com/-/graphql-explorer에서 사용할 수 있습니다.
- Self-managed 사용자는
https://gitlab.example.com/-/graphql-explorer
에서 사용할 수 있습니다.
-
다음 코드 발췌를 복사합니다:
{ users(usernames: ["user1", "user3", "user4"]) { pageInfo { endCursor startCursor hasNextPage } nodes { id username, publicEmail location webUrl userPermissions { createSnippet } } } }
- GraphiQL 탐색기 도구를 엽니다.
- 위에 나열된
query
를 GraphiQL 탐색기 도구의 왼쪽 창에 붙여넣습니다. - Play를 선택하여 여기 표시된 결과를 얻습니다:
이 GraphQL 쿼리는 나열된 사용자 이름을 가진 세 사용자에 대한 지정된 정보를 반환합니다. GraphiQL 탐색기는 세션 토큰을 사용하여 리소스에 대한 액세스를 인증하므로 출력은 현재 인증된 사용자가 액세스할 수 있는 프로젝트 및 그룹으로 제한됩니다.
인스턴스 관리자 자격으로 로그인한 경우 소유 여부와 관계없이 모든 기록에 액세스할 수 있습니다.
관리자로 로그인한 경우 admins: true
매개변수를 쿼리에 추가하여 인스턴스에서 일치하는 관리자만 표시할 수 있습니다. 두 번째 줄을 다음과 같이 변경합니다:
users(usernames: ["user1", "user3", "user4"], admins: true) {
...
}
또는 모든 관리자를 얻을 수도 있습니다:
users(admins: true) {
...
}
자세한 정보는 다음을 참조하세요:
- 프래그먼트 및 인터페이스와 같은 GraphQL 특정 엔터티는 공식 GraphQL 문서를 참조하세요.
- 개별 속성은 GraphQL API 리소스를 참조하세요.