GraphQL কোয়েরি (পঠন)
টাইপ-সেফ GraphQL কোয়েরি দিয়ে ডেটা আনুন
/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টি খরচ করে।
উদাহরণ: তালিকা কাজের নির্দেশনা
query { workOrders(limit: 10, status: "OPEN") { id title priority status assetId assetName locationId locationName dueDate } } সর্বোচ্চ 200টি সারি ফেরত দেয়; ডিফল্ট সীমা 50।
একটি পার্ট আনুন (id বা বারকোড দিয়ে)
id বা বারকোড দিয়ে একটি পার্ট আনুন: 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-ও ফেরত দেয় — একটি কোয়েরিতেই কিয়স্কের পর্দা ভরানোর মতো যথেষ্ট। এটি আপনার নিজের customReference-এর সঙ্গেও মেলে, তাই কোনো ইন্টিগ্রেশন আপনার সিস্টেমে থাকা কোড দিয়েই যন্ত্রাংশটি খুঁজে পেতে পারে।
উপলব্ধ ফিল্টার
- 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 স্থানাঙ্ক); কিয়স্ক দেখাতে পারে পার্টটি কোথায় রাখা আছে
- 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 রেফারেন্স (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
স্কিমা আত্মদর্শন
আত্মদর্শন (ইন্ট্রোস্পেকশন) চালু আছে। প্রতিটি কোয়েরি, মিউটেশন ও ইনপুট টাইপ তাদের ফিল্ডসহ পুরো স্কিমা ইন্টারঅ্যাকটিভভাবে ঘুরে দেখতে একটি ডেস্কটপ GraphQL ক্লায়েন্ট (Altair, Insomnia বা Postman) আপনার Bearer টোকেনসহ POST /api/v1/graphql-এ যুক্ত করুন। ব্রাউজারে চলা এক্সপ্লোরার, যেমন Apollo Sandbox বা অনলাইন GraphiQL, আমাদের CORS নীতির কারণে প্রত্যাখ্যাত হয়।
টিপ
টিপ
সম্পর্কিত নিবন্ধ
এই পেজটি কি সহায়ক ছিল?