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