Zapytania GraphQL (odczyt)
Pobieraj dane za pomocą typowanych zapytań GraphQL
Endpoint GraphQL /api/v1/graphql udostępnia 16 zapytań odczytu: whoami, workOrders, workOrder(id | reference), assets, asset(id), assetDowntimes, meters(assetId), parts (z filtrem lowStock), part (po id lub kodzie kreskowym), stockMovements, floorPlans(locationId), locations, vendors, customers, purchaseOrders, purchaseOrder(id | reference | erpReference). Każdą listę można przejrzeć stronami do końca za pomocą limit (1-200) i offset — z wyjątkiem stockMovements, które stronicuje się przez afterId.
Punkt końcowy
POST https://freemaint.com/api/v1/graphql z nagłówkiem Content-Type: application/json. Każde zapytanie zużywa 1 z Twojego dziennego limitu.
Przykład: lista zleceń
query { workOrders(limit: 10, status: "OPEN") { id title priority status assetId assetName locationId locationName dueDate } } Zwraca do 200 wierszy; domyślny limit to 50.
Pobierz jedną część (po id lub kodzie kreskowym)
Pobierz pojedynczą część po id lub kodzie kreskowym: part(id: N) albo part(barcode: "CODE"). barcode dopasowuje kod kreskowy, kod QR, numer części i referencję (bez rozróżniania wielkości liter, tylko aktywne części) — to samo dopasowanie, którego używa skaner w aplikacji — i zwraca null, gdy nic nie pasuje. Przykład: query { part(barcode: "ABC-123") { id name description partNumber quantity minQuantity maxStockLevel unitOfMeasure imageUrl area location { name } vendor { name website } } } Część zwraca również description, minQuantity, maxStockLevel, imageUrl oraz zagnieżdżone location i vendor — dość, by wypełnić ekran kiosku jednym zapytaniem. Dopasowuje też Państwa własne customReference, więc integracja może odnaleźć część po kodzie, który nosi ona w Państwa systemie.
Dostępne filtry
- workOrders(limit, offset, status, updatedSince) — od najnowszych; stronicowanie przez limit (1-200, domyślnie 50) i offset; status to tekstowy filtr statusu; updatedSince zwraca tylko zlecenia pracy zmienione od tej chwili; zlecenia pracy znajdujące się w Koszu nigdy nie są zwracane
- workOrder(id:) / workOrder(reference:) — jedno zlecenie, wyszukane po id albo po numerze, którym posługuje się Twój zespół (WO-2026-11-016, bez rozróżniania wielkości liter); podaj dokładnie jedno z nich. Każde zlecenie zwraca też assetName i locationName — nazwy, które drukuje formularz lub pozwolenie
- assets(limit, offset, updatedSince) — od najnowszych; stronicowanie przez limit (1-200, domyślnie 50) i offset; updatedSince zwraca tylko zasoby zmienione od tej chwili
- assetDowntimes(assetId, openOnly, since, limit, offset) — postoje maszyn, od najnowszego; stronicowanie przez limit (1-200, domyślnie 50) i offset; openOnly=true zwraca tylko postoje jeszcze niezakończone; since (ISO 8601) zwraca postoje ROZPOCZĘTE od podanego znacznika czasu, czyli tani sposób na nadrobienie utraconej dostawy
- parts(limit, offset, lowStock, updatedSince) — stronicowanie przez limit (1-200) oraz offset; updatedSince zwraca tylko części zmienione od tej chwili; lowStock=true zwraca tylko pozycje magazynowe na poziomie minQuantity lub poniżej
- locations, vendors, customers (limit, offset, updatedSince) — uporządkowane według nazwy; stronicowanie przez limit (1-200, domyślnie 200) i offset; updatedSince zwraca tylko wiersze zmienione od tej chwili
- part(id, barcode) — wyszukanie jednej części; barcode dopasowuje kod kreskowy, kod QR, numer części, referencję i referencję własną — idealne dla skanerów
- floorPlans(locationId) — plany pięter lokalizacji wraz z ich znacznikami (współrzędne x/y w procentach); kiosk może pokazać, gdzie przechowywana jest część
- meters(assetId, limit, offset) — liczniki (motogodziny, liczniki sztuk, drogomierze, wskaźniki), od najnowszych; stronicowanie przez limit (1-200, domyślnie 50) i offset; assetId zawęża do jednej maszyny; lastReadingValue i lastReadingDate podają ostatni odczyt
- purchaseOrders(limit, offset, status, vendorId, updatedSince) — zamówienia zakupu z pozycjami (każda z receivedQuantity), dostawami (receipts) i dostawcą, od najnowszych; stronicowanie przez limit (1-200, domyślnie 50) i offset; status to PENDING, APPROVED, ORDERED, PARTIALLY_RECEIVED, RECEIVED lub CANCELLED; updatedSince zwraca tylko zamówienia zmienione od tej chwili
- purchaseOrder(id, reference, erpReference) — jedno zamówienie zakupu, wyszukane po id, po numerze FreeMaint (PO-12) albo po erpReference zapisanym przez Twój ERP; podaj dokładnie jeden
- stockMovements(limit, afterId, since, partId, workOrderId, type) — rejestr ruchów magazynowych, od najstarszych; stronicowanie przez limit (1-200, domyślnie 50) i afterId: przekaż id ostatniego otrzymanego ruchu, aby pobrać następną stronę — pozostaje ona dokładna nawet wtedy, gdy zapisywane są nowe ruchy; since (ISO 8601) zaczyna od podanej daty; type to ADJUSTMENT, PURCHASE, WORK_ORDER, TRANSFER, RETURN, SCRAP, INITIAL, CORRECTION lub INSPECTION
Introspekcja schematu
Introspekcja jest włączona. Aby interaktywnie przeglądać pełny schemat — każde zapytanie, mutację i typ wejściowy wraz z polami — skieruj desktopowego klienta GraphQL (Altair, Insomnia lub Postman) na POST /api/v1/graphql z tokenem Bearer. Eksploratory działające w przeglądarce, takie jak Apollo Sandbox czy GraphiQL online, są odrzucane przez naszą politykę CORS.
Wskazówka
Wskazówka
Powiązane artykuły
Czy ta strona była pomocna?