9.1 نظرة عامة

يضم البرنامج خادم API مدمجاً (Shelf) يعمل افتراضياً على المنفذ 8080، ويفتح REST على /api/* و WebSocket على /ws. يُستخدم لربط تطبيقات الموظفين والهاتف والفروع، ويمكن لأي نظام خارجي التكامل معه.

9.2 المصادقة

الطريقة الترويسة (Header) الاستخدام
مفتاح API X-API-Key: <key> أو Authorization: Bearer <key> تكاملات الإدارة والأنظمة الخارجية
رمز جلسة الموظف X-Session-Token: <token> عملاء الموظفين (ينتهي بعد 8 ساعات)
  • مسارات عامة بدون مصادقة: /, /api/status, /api/auth/login, /api/auth/verify, /ws.
  • حماية من التخمين: 5 محاولات فاشلة خلال 5 دقائق ← قفل 15 دقيقة.

9.3 أمثلة طلب/رد

مثال 1 — حالة الخادم (بدون مصادقة):

GET http://192.168.1.10:8080/api/status
{
  "status": "online",
  "role": "main",
  "version": "1.0.0",
  "authRequired": true,
  "lanId": "<معرّف الشبكة>",
  "lanName": "<اسم الشبكة>",
  "lanFp": "<بصمة شهادة TLS>"
}

مثال 2 — تسجيل دخول موظف:

POST http://192.168.1.10:8080/api/auth/login
Content-Type: application/json

{
  "username": "cashier1",
  "password": "********"
}
{
  "success": true,
  "token": "<session-token>",
  "user": {
    "id": 3,
    "username": "cashier1",
    "displayName": "كاشير 1",
    "role": "cashier",
    "permissions": ["pos_sell", "invoices_view"]
  }
}

مثال 3 — قراءة الأصناف بمفتاح API:

GET http://192.168.1.10:8080/api/items?limit=20
X-API-Key: <api-key>

مثال 4 — WebSocket:

ws://192.168.1.10:8080/ws?token=<session-token>

أول رسالة يجب أن تكون مصادقة:

{ "action": "auth", "token": "<session-token>" }

من أحداث الخادم: chat_message, chat_typing, webrtc_signal, plugin_state, force_logout, server_shutdown.

9.4 مجموعات نقاط النهاية الرئيسية

المجموعة المسار الأساسي
الحالة والمعلومات /api/status, /api/plugins
المصادقة والمستخدمون /api/auth/*, /api/users/*, /api/roles/*
الفواتير /api/invoices/* (تأكيد، إلغاء، دفع، مرتجعات، أرقام تالية…)
الأصناف والمخازن /api/items/*, /api/warehouses/*, /api/bundles/*
العملاء والموردون /api/customers, /api/suppliers, /api/parties/*
السندات والصناديق /api/vouchers/*, /api/cash-box/*, /api/cash-registers/*
المحاسبة /api/accounting/*, /api/expenses/*
التقارير /api/reports/*
الموظفون /api/employees/* (بما فيها heartbeat وstats)
المحادثات /api/chat/*
سير العمل والتصنيع /api/workflow/*, /api/manufacturing/*
الإضافات /api/telegram/*, /api/website/*, /api/tasks/*, /api/debt-collector/*, /api/margin-guard/*, /api/sales-copilot/*, /api/dead-stock/*, /api/delegate*/*
سلامة البيانات /api/integrity/*
العملات /api/currencies/*, /api/pricelists/*

العدد الكلي للمسارات في الكود يتجاوز 540 مساراً. القائمة أعلاه هي المجموعات الرئيسية.

9.5 حدود الاستخدام

الحد القيمة
قفل المصادقة 5 محاولات فاشلة / 5 دقائق ← قفل 15 دقيقة
عمر الجلسة 8 ساعات
مهلة WebSocket قبل المصادقة 15 ثانية (يُقطع الاتصال)