GraphQL을 이용한 사용자 쿼리

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

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

cURL을 사용하여 HTTP 엔드포인트를 통해 동일한 쿼리를 직접 실행할 수 있습니다. 자세한 정보는 command line에서 시작하는 방법을 참조하세요.

예시 사용자 쿼리는 GitLab 인스턴스에서 사용자의 하위 집합을 사용자 이름 또는 전역 ID로 찾습니다. 이 쿼리에는 다음이 포함됩니다:

pageInfo

이것에는 페이지네이션을 구현하는 데 필요한 데이터가 포함되어 있습니다. GitLab은 커서 기반의 페이지네이션을 사용합니다. 자세한 정보는 GraphQL 문서의 Pagination을 참조하세요.

nodes

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

  • 사용자의 id.
  • 그 사용자에 속한 프로젝트 또는 그룹 멤버십을 나타내는 membership fragment. 단편을 출력하는 것은 ...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 탐색기에서 보드 검색

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

이 GraphQL 쿼리는 목록된 사용자 이름을 가진 세 명의 사용자에 대한 지정된 정보를 반환합니다. GraphiQL 탐색기는 세션 토큰을 사용하여 리소스에 대한 액세스를 인증하므로 현재 인증된 사용자가 액세스할 수 있는 프로젝트 및 그룹으로 결과가 제한됩니다.

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

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

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

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

  users(admins: true) {
    ...
  }

추가 정보: