당신이 볼 수 있거나 수정할 수 있는 대시보드의 페이지네이션된 목록을 가져옵니다.
대시보드 목록
당신이 볼 수 있는 대시보드를 가져옵니다. 여기에는 당신이 생성한 대시보드와 당신과 공유된 대시보드가 포함됩니다.
기본 예제
query ListDashboards {
dashboards(filter: { companyId: "company_123" }) {
items {
id
title
createdBy {
id
name
email
}
createdAt
updatedAt
}
pageInfo {
hasNextPage
hasPreviousPage
startCursor
endCursor
}
}
}
고급 예제
query ListDashboardsAdvanced {
dashboards(
filter: {
companyId: "company_123"
projectId: "proj_456" # Optional: filter by project
}
sort: [updatedAt_DESC, title_ASC]
skip: 0
take: 10
) {
items {
id
title
createdBy {
id
name
email
}
dashboardUsers {
id
role
user {
id
name
email
}
}
createdAt
updatedAt
}
pageInfo {
hasNextPage
hasPreviousPage
startCursor
endCursor
}
}
}
입력 매개변수
매개변수 |
유형 |
필수 |
설명 |
companyId |
String! |
✅ 예 |
대시보드를 필터링할 회사 ID |
projectId |
String |
아니요 |
대시보드를 필터링할 선택적 프로젝트 ID |
정렬 옵션
정렬 값 |
설명 |
title_ASC |
제목 오름차순으로 정렬 |
title_DESC |
제목 내림차순으로 정렬 |
createdBy_ASC |
생성자 오름차순으로 정렬 |
createdBy_DESC |
생성자 내림차순으로 정렬 |
updatedAt_ASC |
업데이트 시간 오름차순으로 정렬 |
updatedAt_DESC |
업데이트 시간 내림차순으로 정렬 (기본값) |
페이지네이션 매개변수
매개변수 |
유형 |
기본값 |
설명 |
skip |
Int |
0 |
건너뛸 항목 수 |
take |
Int |
20 |
반환할 항목 수 (최대 100) |
응답 필드
필드 |
유형 |
설명 |
items |
[Dashboard!]! |
대시보드 객체 배열 |
pageInfo |
PageInfo! |
페이지네이션 정보 |
Dashboard
필드 |
유형 |
설명 |
id |
ID! |
대시보드의 고유 식별자 |
title |
String! |
대시보드의 표시 이름 |
createdBy |
User! |
대시보드를 생성한 사용자 |
dashboardUsers |
[DashboardUser!] |
이 대시보드에 접근할 수 있는 사용자 |
createdAt |
DateTime! |
대시보드가 생성된 시간 |
updatedAt |
DateTime! |
대시보드가 마지막으로 수정된 시간 |
DashboardUser
필드 |
유형 |
설명 |
id |
ID! |
대시보드 사용자의 고유 식별자 |
role |
DashboardRole! |
사용자의 역할 (VIEWER 또는 EDITOR) |
user |
User! |
사용자 정보 |
접근 제어
대시보드 가시성
당신은 다음의 대시보드만 볼 수 있습니다:
- 대시보드의 생성자
- 대시보드 공유를 통해 명시적으로 접근 권한이 부여된 경우
필요한 권한
- 인증 필요: 로그인해야 합니다.
- 회사 접근: 지정된 회사에 접근할 수 있어야 합니다.
- 프로젝트 접근: 프로젝트로 필터링하는 경우 해당 프로젝트에 접근할 수 있어야 합니다.
오류 응답
회사를 찾을 수 없음
{
"errors": [{
"message": "Company not found",
"extensions": {
"code": "COMPANY_NOT_FOUND"
}
}]
}
프로젝트를 찾을 수 없음
{
"errors": [{
"message": "Project not found",
"extensions": {
"code": "PROJECT_NOT_FOUND"
}
}]
}
일반 사용 사례
모든 회사 대시보드 목록
query CompanyDashboards {
dashboards(filter: { companyId: "company_123" }) {
items {
id
title
createdBy { name }
}
}
}
프로젝트 특정 대시보드 목록
query ProjectDashboards {
dashboards(filter: {
companyId: "company_123"
projectId: "proj_456"
}) {
items {
id
title
}
}
}
페이지네이션된 대시보드 목록
query PaginatedDashboards {
dashboards(
filter: { companyId: "company_123" }
skip: 20
take: 10
) {
items {
id
title
}
pageInfo {
hasNextPage
hasPreviousPage
}
}
}
모범 사례
성능
- 대시보드 목록이 클 경우 성능 향상을 위해 페이지네이션을 사용하세요.
- 애플리케이션에서 필요한 필드만 요청하세요.
- 자주 접근하는 데이터에 대해 대시보드 목록을 캐시하는 것을 고려하세요.
필터링
- 적절한 데이터 격리를 보장하기 위해 항상 회사로 필터링하세요.
- 프로젝트 특정 대시보드 작업 시 프로젝트 필터링을 사용하세요.
- 결과를 효율적으로 좁히기 위해 필터를 결합하세요.
정렬
- 기본 정렬은
updatedAt_DESC
(가장 최근에 업데이트된 것부터)입니다.
- 알파벳 순서 정리를 위해 제목 정렬을 사용하세요.
- 복잡한 정렬 요구를 위해 여러 정렬 기준을 결합하세요.
관련 작업