Dokumentacja API eksportu tablicy
Dostępne tylko w wersjach API 2026-10 i nowszych
- 🚧 Dostępne tylko w planach Enterprise
- Wymagany zakres:
boards:readdla obu operacji (boards:writenie jest wymagany - eksport tylko odczytuje dane tablicy) - Eksportowany plik jest zawsze w formacie CSV
Proces eksportu:
- Wywołaj
create_board_exportz parametremboard_id - Jeśli odpowiedź ma typ
ExportFile, od razu pobierz plik zdownload_url - Jeśli odpowiedź ma typ
ExportAsyncJob, odpytujexport_job_status, przekazując jegojob_id, aż zadanie osiągnie stan końcowy
Zapytania
Sprawdzanie stanu zadania eksportu
- 🚧 Dostępne tylko w planach Enterprise - pozostałe konta otrzymają błąd
FORBIDDEN_EXCEPTION - Wymagany zakres:
boards:read - Zwraca bieżący stan asynchronicznego eksportu tablicy jako
ExportJobStatusInfoalbonull - Użyj tego zapytania, aby odpytywać o
job_idzwrócone przezcreate_board_export
query {
export_job_status(job_id: "a1b2c3d4-0000-0000-0000-000000000000") {
status
download_url
failure_reason
failure_message
}
}
import { ApiClient } from "@mondaydotcomorg/api";
const mondayApiClient = new ApiClient({ token: myToken });
const query = `query ($job: ID!) { export_job_status (job_id: $job) { status download_url failure_reason failure_message }}`
const variables = {
job: "a1b2c3d4-0000-0000-0000-000000000000"
}
const response = await mondayApiClient.request(query, variables);
Argumenty
| Argument | Typ | Opis |
|---|---|---|
| job_id | ID! |
job_id zwrócone przez create_board_export. |
Odpytywanie
Odpytuj, aż status przyjmie jedną z wartości końcowych: COMPLETED, FAILED lub CANCELLED:
COMPLETED- odczytajdownload_url. Może mieć wartośćnull, jeśli odpytasz po wygaśnięciu adresu URL, więc sprawdź go przed użyciem.FAILED- odczytajfailure_reason(orazfailure_message, jeśli jest dostępny).RUNNING- poczekaj i odpytaj ponownie.
Zwiększaj odstępy między kolejnymi zapytaniami, zamiast wysyłać je w krótkiej pętli. Każde wywołanie jest wliczane do limitów zapytań. Eksport dużych tablic może trwać kilka minut, dlatego ustaw limit czasu we własnym kliencie, zamiast odpytywać bez końca.
Wynik null nie oznacza, że zadanie się nie powiodło. To zapytanie zwraca null zarówno dla nieistniejącego job_id, jak i dla identyfikatora należącego do innego konta. Te przypadki celowo są nierozróżnialne, aby ujawniony identyfikator nie mógł posłużyć do sprawdzania eksportów innych kont. Jeśli wynik null pojawi się dla identyfikatora, który właśnie otrzymano, sprawdź, czy wysyłasz zapytanie z tokenem tego samego konta.
Mutacje
Wymagany zakres: boards:read (boards:write nie jest wymagany - ta mutacja tylko odczytuje dane tablicy)
Tworzenie eksportu tablicy
- 🚧 Dostępne tylko w planach Enterprise
- Eksportuje tablicę do pliku CSV i zwraca
ExportResult - Eksportowany plik jest zawsze w formacie CSV
Ta mutacja zwraca jeden z dwóch różnych typów, a Twoje zapytanie musi obsługiwać oba.
Eksport małych tablic zwykle kończy się od razu i zwraca ExportFile z polem download_url. Eksport większych tablic zwraca ExportAsyncJob z polem job_id, o które trzeba następnie odpytywać.
To, który typ otrzymasz, nie jest gwarantowane. Zależy od rozmiaru tablicy i bieżącego obciążenia serwera. Progi mogą też zostać zmienione bez uprzedzenia, więc ta sama tablica może dziś zwrócić ExportFile, a jutro ExportAsyncJob. Klient, który wybiera tylko jedną z tych możliwości, przestanie działać. Zawsze wybieraj oba typy.
mutation {
create_board_export(
board_id: 1234567890
export_options: { include_subitems: true, header_row: COLUMN_ID, columns_order: ["name", "status", "date4"] }
time_zone: "America/New_York"
) {
... on ExportFile {
download_url
expires_at
}
... on ExportAsyncJob {
job_id
}
}
}
import { ApiClient } from "@mondaydotcomorg/api";
const mondayApiClient = new ApiClient({ token: myToken });
const query = `mutation ($board: ID!) { create_board_export (board_id: $board) { ... on ExportFile { download_url expires_at } ... on ExportAsyncJob { job_id }}}`
const variables = {
board: 1234567890
}
const response = await mondayApiClient.request(query, variables);
const result = response.create_board_export;
if (result.download_url) {
// Finished synchronously - download it now.
} else {
// Still running - poll export_job_status with result.job_id.
}
Argumenty
| Argument | Typ | Opis |
|---|---|---|
| board_id | ID! |
Unikatowy identyfikator tablicy do wyeksportowania. |
| export_options | CreateBoardExportOptionsInput |
Konfiguracja eksportu (podelementy, format nagłówka, kolejność kolumn itd.). Pomiń ten argument, aby użyć ustawień domyślnych. |
| time_zone | String |
Strefa czasowa IANA używana do formatowania dat i godzin, np. America/New_York. Domyślnie jest to strefa czasowa użytkownika, którego tokenem wysłano zapytanie, a jeśli użytkownik jej nie ustawił - UTC. |
export_options.columns_order wybiera kolumny i ustala ich kolejność. Każda niewymieniona kolumna zostanie całkowicie pominięta w eksporcie - nie zostanie dodana na końcu. Aby zmienić kolejność kolumn na tablicy bez utraty żadnej z nich, podaj identyfikator każdej kolumny, którą chcesz uwzględnić.
Kolumna z nazwą elementu i kolumny podelementów stanowią wyjątek: zawsze są umieszczane na początku, niezależnie od tego, czy je wymienisz.
Zwracane wartości
ExportResult - jeden z typów:
| Typ | Kiedy jest zwracany | Co zrobić |
|---|---|---|
ExportFile |
Eksport zakończył się na czas | Pobierz plik z download_url przed upływem expires_at. |
ExportAsyncJob |
Eksport jest nadal w toku | Odpytuj export_job_status, przekazując job_id, aż zadanie osiągnie stan końcowy. |
Jeśli wolisz rozróżniać typy bezpośrednio, zamiast wnioskować o nich na podstawie zwróconych pól, użyj __typename:
mutation {
create_board_export(board_id: 1234567890) {
__typename
... on ExportFile { download_url }
... on ExportAsyncJob { job_id }
}
}
Błędy
Wynik nie ma osobnej gałęzi dla błędów. Błędy są zgłaszane na jeden z dwóch sposobów:
- Jako błąd GraphQL, jeśli żądanie zostanie odrzucone przed rozpoczęciem eksportu - na przykład z powodu nieprawidłowego
board_id, braku uprawnień lub nieobsługiwanej kombinacji opcji eksportu. Konta bez planu Enterprise zostaną odrzucone z kodem błęduFORBIDDEN_EXCEPTION. - Jako stan
FAILEDwexport_job_status, jeśli asynchroniczny eksport nie powiedzie się po rozpoczęciu. OdczytajExportFailureReason, aby poznać przyczynę.
Adresy URL pobierania
download_url to podpisany adres URL, który wygasa. Traktuj go jak sekret - każda osoba, która go ma, może pobrać plik do czasu jego wygaśnięcia. Nie można odnowić tego adresu: po jego wygaśnięciu ponownie wywołaj create_board_export, aby utworzyć nowy plik.
Zobacz także
- Omówienie eksportu tablicy - krótkie porównanie eksportu synchronicznego i asynchronicznego
- Pozostałe typy eksportu tablicy - obiekty wejściowe, typy wyników i wartości wyliczeniowe