表示または変更するアクセス権のあるダッシュボードのページネーションされたリストを取得します
ダッシュボードの一覧
表示するアクセス権のあるダッシュボードを取得します。これには、作成したダッシュボードと共有されたダッシュボードが含まれます。
基本的な例
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
(最も最近更新されたものが最初)
- アルファベット順の整理にはタイトルソートを使用してください
- 複雑な並べ替えのニーズには複数のソート基準を組み合わせてください
関連操作