GraphQL을 사용하여 사용자 쿼리하기

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

이 페이지에서는 GraphiQL 탐색기를 사용하여 사용자를 쿼리하는 방법에 대해 설명합니다.

cURL을 사용하여 HTTP 엔드포인트를 통해 동일한 쿼리를 직접 실행할 수 있습니다. 자세한 내용은 커맨드 라인에서 시작하는 방법을 참조하십시오.

예시 사용자 쿼리는 GitLab 인스턴스에서 사용자의 하위 집합을 찾는데 사용됩니다. 이 때 사용자명 또는 Global ID로 검색할 수 있습니다. 이 쿼리는 다음을 포함합니다.

pageInfo

이것은 페이지네이션을 구현하는 데 필요한 데이터를 포함하고 있습니다. GitLab은 커서 기반의 페이지네이션을 사용합니다. 자세한 내용은 GraphQL 문서의 Pagination을 참조하십시오.

nodes

GraphQL 쿼리에서 nodes는 그래프의 노드들의 컬렉션을 나타내는 데 사용됩니다. 이 경우 노드들의 컬렉션은 User 객체들의 컬렉션입니다. 각각에 대해 다음을 출력합니다.

  • 사용자의 id.
  • 해당 사용자에 속한 프로젝트 또는 그룹 멤버십을 나타내는 membership 프래그먼트. 프래그먼트를 출력하는 것은 ...memberships 표기법을 사용합니다.

GitLab의 GraphQL API는 넓은 범위의 엔티티들에 대한 방대한 양의 데이터를 출력할 수 있습니다. 가장 최신 정보를 위해서는 공식 참조 문서를 참조하십시오.

GraphiQL 탐색기 설정

이 절차에서는 GraphiQL 탐색기로 복사하여 붙여넣을 수 있는 구체적인 예제를 제시합니다. GraphiQL 탐색기는 다음에서 사용할 수 있습니다.

  1. 다음 코드 조각을 복사합니다.

     {
       users(usernames: ["user1", "user3", "user4"]) {
         pageInfo {
           endCursor
           startCursor
           hasNextPage
         }
         nodes {
           id
           username,
           publicEmail
           location
           webUrl
           userPermissions {
             createSnippet
           }
         }
       }
     }
    
  2. GraphiQL 탐색기 도구를 엽니다.
  3. 상단의 query를 복사하여 GraphiQL 탐색기 도구의 왼쪽 창에 붙여넣습니다.
  4. 결과를 확인하려면 실행을 선택합니다.

GraphiQL 탐색기 보드 검색

note
GraphQL API는 표준 ID 대신 GlobalID를 반환합니다. 또한 단일 정수 대신 GlobalID를 입력으로 예상합니다.

이 GraphQL 쿼리는 디렉터리된 사용자명을 가진 세 명의 사용자에 대한 지정된 정보를 반환합니다. GraphiQL 탐색기는 현재 인증된 사용자가 접근할 수 있는 프로젝트 및 그룹에만 출력을 제한하기 때문에, 세션 토큰을 사용하여 권한을 부여합니다.

인스턴스 관리자로서 로그인한 경우, 소유 여부와 관계없이 모든 레코드에 액세스할 수 있습니다.

관리자로서 로그인한 경우, 쿼리에 admins: true 매개변수를 추가하여 인스턴스에서 일치하는 관리자만 표시할 수 있습니다. 이를 위해 두 번째 줄을 다음과 같이 변경합니다.

  users(usernames: ["user1", "user3", "user4"], admins: true) {
    ...
  }

또는 모든 관리자를 가져올 수도 있습니다.

  users(admins: true) {
    ...
  }

자세한 정보는 다음을 참조하십시오.