GraphQL Query များ (ဖတ်ရှုခြင်း)
type-safe GraphQL query များဖြင့် ဒေတာရယူပါ
/api/v1/graphql ရှိ GraphQL endpoint သည် ဖတ်ရှုမှု query 16 ခုကို ပေးသည်- whoami၊ workOrders၊ workOrder(id | reference)၊ assets၊ asset(id)၊ assetDowntimes၊ meters(assetId)၊ parts (lowStock filter ဖြင့်)၊ part (id သို့မဟုတ် barcode ဖြင့်)၊ stockMovements၊ floorPlans(locationId)၊ locations၊ vendors၊ customers၊ purchaseOrders၊ purchaseOrder(id | reference | erpReference)။ စာရင်းတိုင်းကို limit (1-200) နှင့် offset ဖြင့် အဆုံးထိ စာမျက်နှာခွဲ၍ ဖတ်နိုင်သည် — stockMovements မှလွဲ၍၊ ၎င်းကိုမူ afterId ဖြင့် စာမျက်နှာခွဲသည်။
အဆုံးမှတ် (Endpoint)
Content-Type: application/json ဖြင့် POST https://freemaint.com/api/v1/graphql ကို ခေါ်ပါ။ query တစ်ခုစီသည် သင့်နေ့စဉ် quota မှ ၁ ခု သုံးစွဲသည်။
ဥပမာ - work order များ စာရင်းပြရန်
query { workOrders(limit: 10, status: "OPEN") { id title priority status assetId assetName locationId locationName dueDate } } အများဆုံး အတန်း 200 ပြန်ပေးသည်၊ မူလကန့်သတ်ချက်မှာ 50 ဖြစ်သည်။
အပိုပစ္စည်းတစ်ခု ရယူခြင်း (id သို့မဟုတ် barcode ဖြင့်)
id သို့မဟုတ် barcode ဖြင့် part တစ်ခုကို ရယူပါ- part(id: N) သို့မဟုတ် part(barcode: "CODE")။ barcode သည် barcode၊ QR code၊ part နံပါတ်နှင့် reference တို့နှင့် ကိုက်ညီသည် (စာလုံးအကြီးအသေး မခွဲ၊ အသုံးပြုဆဲ part များသာ) — အက်ပ်အတွင်း စကင်နာသုံးသည့် နည်းအတိုင်းပင် — မကိုက်ညီပါက null ပြန်ပေးသည်။ ဥပမာ- query { part(barcode: "ABC-123") { id name description partNumber quantity minQuantity maxStockLevel unitOfMeasure imageUrl area location { name } vendor { name website } } } Part သည် description၊ minQuantity၊ maxStockLevel၊ imageUrl နှင့် location၊ vendor တို့ကိုပါ ပြန်ပေးသည် — query တစ်ခုတည်းဖြင့် kiosk မျက်နှာပြင်ကို ဖြည့်ရန် လုံလောက်သည်။ ၎င်းသည် သင့်၏ customReference နှင့်လည်း ကိုက်ညီသဖြင့်၊ ပေါင်းစပ်မှုတစ်ခုသည် သင့်စနစ်ထဲက ကုဒ်ဖြင့် အပိုပစ္စည်းကို ရှာတွေ့နိုင်ပါသည်။
ရရှိနိုင်သော filter များ
- workOrders(limit, offset, status, updatedSince) — အသစ်ဆုံးမှ စတင်သည်။ limit (1-200၊ မူလ 50) နှင့် offset ဖြင့် စာမျက်နှာခွဲပါ။ status ဖြင့် အခြေအနေစာသားအလိုက် စစ်ထုတ်နိုင်သည်။ updatedSince သည် ထိုအချိန်မှစ၍ ပြင်ဆင်ထားသော လုပ်ငန်းအမိန့်များကိုသာ ပြန်ပေးသည်။ အမှိုက်ပုံးထဲရှိ လုပ်ငန်းအမိန့်များကို ဘယ်တော့မှ ပြန်မပေးပါ
- workOrder(id:) / workOrder(reference:) — id သို့မဟုတ် သင့်အဖွဲ့ အသုံးပြုသည့် ရည်ညွှန်းနံပါတ် (WO-2026-11-016၊ စာလုံးအကြီးအသေး မခွဲခြား) ဖြင့် အလုပ်အမိန့်တစ်ခုကို ရှာပါ။ နှစ်ခုအနက် တစ်ခုတည်းကိုသာ ပေးပါ။ အလုပ်အမိန့်တိုင်းသည် ဖောင် သို့မဟုတ် ခွင့်ပြုချက်တွင် ပုံနှိပ်မည့်အမည်များဖြစ်သော 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 (၁-၂၀၀) နှင့် offset ဖြင့် စာမျက်နှာခွဲခြင်း၊ updatedSince သည် ထိုအချိန်နောက်ပိုင်း ပြောင်းလဲခဲ့သော အပိုပစ္စည်းများကိုသာ ပြန်ပေးပြီး၊ lowStock=true သည် minQuantity အောက် သို့မဟုတ် ညီမျှသော စတော့ပစ္စည်းများကိုသာ ပြန်ပေးသည်
- locations, vendors, customers (limit, offset, updatedSince) — အမည်အလိုက် စီထားသည်။ limit (1-200၊ မူလ 200) နှင့် offset ဖြင့် စာမျက်နှာခွဲပါ။ updatedSince သည် ထိုအချိန်မှစ၍ ပြင်ဆင်ထားသော အတန်းများကိုသာ ပြန်ပေးသည်
- part(id, barcode) — အပိုပစ္စည်းတစ်ခုကို ရှာဖွေခြင်း၊ barcode သည် ဘားကုဒ်၊ QR ကုဒ်၊ ပစ္စည်းနံပါတ်၊ ကိုးကားနံပါတ်နှင့် စိတ်ကြိုက်ကိုးကားနံပါတ်တို့နှင့် ကိုက်ညီသဖြင့် စကင်နာများအတွက် သင့်လျော်သည်
- floorPlans(locationId) — တည်နေရာတစ်ခု၏ ကြမ်းခင်းပုံစံများနှင့် ၎င်းတို့၏ မှတ်သားချက်များ (ရာခိုင်နှုန်းဖြင့် x/y တည်နေရာ)၊ ပစ္စည်းသိမ်းဆည်းထားသည့်နေရာကို kiosk က ပြသနိုင်သည်
- meters(assetId, limit, offset) — မီတာများ (လည်ပတ်ချိန်နာရီ၊ ကောင်တာ၊ အကွာအဝေးမီတာ၊ တိုင်းကိရိယာ)၊ အသစ်ဆုံးမှ စတင်သည်။ limit (1-200၊ မူလ 50) နှင့် offset ဖြင့် စာမျက်နှာခွဲပါ။ assetId ဖြင့် စက်တစ်လုံးတည်းသို့ ကန့်သတ်နိုင်သည်။ 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) — ဝယ်ယူမှုအမိန့်တစ်ခုကို ၎င်း၏ id၊ FreeMaint reference (PO-12) သို့မဟုတ် သင့် ERP ပြန်ရေးထားသော erpReference ဖြင့် ရှာသည်။ တစ်ခုတည်းကိုသာ ပေးပါ
- 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 ဖြစ်သည်
Schema ကို မေးမြန်းစစ်ဆေးခြင်း (introspection)
ဖွဲ့စည်းပုံ ကိုယ်တိုင်ဖော်ပြမှု (introspection) ကို ဖွင့်ထားပါသည်။ မေးမြန်းချက် (query)၊ ပြင်ဆင်ချက် (mutation) နှင့် ထည့်သွင်းမှုအမျိုးအစား တစ်ခုချင်းစီကို ၎င်းတို့၏ အကွက်များနှင့်တကွ ပါဝင်သော ဖွဲ့စည်းပုံ အပြည့်အစုံကို အပြန်အလှန် လေ့လာလိုပါက ကွန်ပျူတာတွင် ထည့်သွင်းသုံးသော GraphQL ကလိုင်းယင့် (Altair၊ Insomnia သို့မဟုတ် Postman) ကို သင့် Bearer တိုကင်ဖြင့် POST /api/v1/graphql သို့ ချိတ်ဆက်ပါ။ Apollo Sandbox သို့မဟုတ် အွန်လိုင်း GraphiQL ကဲ့သို့ ဘရောက်ဇာထဲတွင် လည်ပတ်သော စူးစမ်းကိရိယာများကို ကျွန်ုပ်တို့၏ CORS မူဝါဒက ငြင်းပယ်ပါသည်။
အကြံပြုချက်
အကြံပြုချက်
ဆက်စပ် ဆောင်းပါးများ
ဤစာမျက်နှာသည် အသုံးဝင်ပါသလား။