GraphQL クエリ (読み取り)

型付き GraphQL クエリでデータを取得

5分で読めます
このセクションを印刷

/api/v1/graphql の GraphQL エンドポイントは 16 個の読み取りクエリを提供します: whoami、workOrders、workOrder(id | reference)、assets、asset(id)、assetDowntimes、meters(assetId)、parts(lowStock フィルター付き)、part(id またはバーコード指定)、stockMovements、floorPlans(locationId)、locations、vendors、customers、purchaseOrders、purchaseOrder(id | reference | erpReference)。どのリストも limit(1-200)と offset で最後までページ送りできます。ただし stockMovements だけは afterId でページ送りします。

終点

Content-Type: application/json を指定して、https://freemaint.com/api/v1/graphql に POST します。各クエリは 1 日のクォータを 1 消費します。

例: 作業指示のリストを作成する

query { workOrders(limit: 10, status: "OPEN") { id title priority status assetId assetName locationId locationName dueDate } } 最大 200 行を返します。デフォルトの上限は 50 です。

1 つの部品を取得(id またはバーコードで)

id またはバーコードで部品を 1 件取得するには、part(id: N) または part(barcode: "CODE") を使います。barcode はバーコード、QR コード、部品番号、参照番号と照合され(大文字・小文字を区別せず、有効な部品のみ)、照合方法はアプリ内スキャナーと同じです。一致するものがない場合は null を返します。例:query { part(barcode: "ABC-123") { id name description partNumber quantity minQuantity maxStockLevel unitOfMeasure imageUrl area location { name } vendor { name website } } } 部品は description、minQuantity、maxStockLevel、imageUrl に加え、ネストされた location と vendor も返すため、1 回のクエリでキオスクの品目画面を埋めるのに十分です。独自の customReference とも照合されるため、連携側は自社システムで管理しているコードで部品を検索できます。

利用可能なフィルター

  • workOrders(limit, offset, status, updatedSince) — 新しい順。limit(1-200、既定 50)と offset でページ送り。status はステータス文字列フィルター。updatedSince はその時点以降に変更された作業指示のみを返します。ゴミ箱内の作業指示が返されることはありません
  • workOrder(id:) / workOrder(reference:) — id、またはチームが使う番号(WO-2026-11-016、大文字小文字を区別しない)で 1 件の作業指示を取得します。どちらか一方だけを指定してください。各作業指示は assetName と locationName(フォームや許可証に印字する名称)も返します
  • assets(limit, offset, updatedSince) — 新しい順。limit(1-200、既定 50)と offset でページ送り。updatedSince はその時点以降に変更された資産のみを返します
  • assetDowntimes(assetId, openOnly, since, limit, offset) — 設備停止の一覧、新しい順。limit(1-200、既定 50)と offset でページ送り。openOnly=true はまだ終了していない停止のみを返します。since(ISO 8601)は指定時刻以降に「開始した」停止を返します。配信を取りこぼした後に追いつくための低コストな方法です
  • parts(limit, offset, lowStock, updatedSince) — limit(1〜200)と offset でページ送り。updatedSince はその時点以降に変更された部品だけを返し、lowStock=true は minQuantity 以下の在庫品だけを返します
  • locations, vendors, customers (limit, offset, updatedSince) — 名前順。limit(1-200、既定 200)と offset でページ送り。updatedSince はその時点以降に変更された行のみを返します
  • part(id, barcode) — 部品 1 件の検索。barcode はバーコード、QR コード、部品番号、参照番号、カスタム参照番号に一致するため、スキャナー用途に最適です
  • floorPlans(locationId) — ロケーションのフロアプランとそのマーカー(x/y 座標、パーセント指定)。キオスクでパーツの保管場所を表示できます
  • meters(assetId, limit, offset) — メーター(稼働時間、カウンター、走行距離計、ゲージ)、新しい順。limit(1-200、既定値 50)と offset でページ送り。assetId で 1 台の設備に絞り込み、lastReadingValue と lastReadingDate で最新の検針値を取得
  • purchaseOrders(limit, offset, status, vendorId, updatedSince) — 発注書とその明細(各明細に receivedQuantity)、納品(receipts)、仕入先を新しい順に返します。limit(1〜200、既定 50)と offset でページ送り。status は PENDING、APPROVED、ORDERED、PARTIALLY_RECEIVED、RECEIVED、CANCELLED のいずれか。updatedSince はその時点以降に変更された発注書のみを返します
  • purchaseOrder(id, reference, erpReference) — 発注書 1 件を、id、FreeMaint の参照番号(PO-12)、または ERP が書き戻した erpReference で取得します。指定するのはどれか 1 つだけです
  • stockMovements(limit, afterId, since, partId, workOrderId, type) — 在庫台帳、古い順。limit(1-200、既定 50)と afterId でページ送り。受け取った最後の在庫変動の id を渡すと次のページが得られ、新しい在庫変動が書き込まれている最中でも正確さが保たれます。since(ISO 8601)で開始日を指定します。type は ADJUSTMENT、PURCHASE、WORK_ORDER、TRANSFER、RETURN、SCRAP、INITIAL、CORRECTION、INSPECTION のいずれかです

スキーマのイントロスペクション

イントロスペクションは有効です。すべてのクエリ、ミューテーション、入力型とそのフィールドを含むスキーマ全体を対話的に確認するには、デスクトップ版の GraphQL クライアント(Altair、Insomnia、Postman)で、Bearer トークンを付けて POST /api/v1/graphql に接続してください。Apollo Sandbox やオンライン版 GraphiQL など、ブラウザー上で動作するエクスプローラーは、当社の CORS ポリシーにより拒否されます。

ヒント

複数のクエリを 1 リクエストにまとめられます: { workOrders(limit:5){ id } assets(limit:5){ id } } — クォータの消費は 1 回だけです。

ヒント

メーターのカスタムフィールド: meters { id name customFields { name label fieldType value } } は、メーター用に定義されたフィールドごとに 1 件を表示順で返します。value はテキストで、そのメーターに値がない場合は null です。API からは読み取り専用です。

このページは役に立ちましたか?