انتقل إلى المحتوى الرئيسي

واجهة برمجة التطبيقات العامة (Public API)

نظرة عامة

تمنح واجهة برمجة التطبيقات العامة لـ AutoGMS شركاء التكامل إمكانية الوصول البرمجي إلى بيانات الكراج. استخدمها لربط أدوات التشخيص ومنصات إدارة الأساطيل ولوحات المعلومات المخصصة وكتالوجات القطع وتطبيقات الجوال بحساب AutoGMS الخاص بك.

الميزات الرئيسية:

  • وصول كامل للقراءة والكتابة لجميع بيانات الكراج بما في ذلك الحجوزات والعملاء والمركبات والمخزون والفواتير والمزيد
  • الويب هوك (Webhooks) -- استلام إشعارات فورية عند حدوث أحداث في كراجك
  • مصادقة بمفتاح API مع تحديد معدل الطلبات لكل مفتاح ومستويات الصلاحيات
  • نطاق خاص بالكراج -- كل طلب مرتبط بكراج محدد
  • تسجيل النشاط -- يتم تسجيل جميع أنشطة API وعرضها في لوحة الإدارة
  • دعم كراجات متعددة -- يمكن لمفتاح واحد الوصول إلى عدة كراجات في مؤسستك

المتطلبات الأساسية

الوصول عبر API هو ميزة إضافية مدفوعة. يجب أن تكون ميزة الوصول عبر API مُفعّلة لمؤسستك. إذا لم تكن الميزة مُفعّلة، ستعرض صفحة الوصول عبر API في لوحة التحكم إشعاراً بتعليمات للتواصل مع الدعم.

بمجرد التفعيل، يمكن لمسؤولي المؤسسة إنشاء وإدارة مفاتيح API مباشرة من لوحة التحكم -- لا حاجة للتواصل مع الدعم لعمليات المفاتيح.


البدء

الخطوة 1: إنشاء مفتاح API

  1. في الشريط الجانبي للوحة التحكم، انتقل إلى مؤسستك وانقر على الوصول عبر API.
  2. انقر إنشاء مفتاح في الزاوية العلوية اليمنى.
  3. أدخل اسماً وصفياً للمفتاح (مثلاً "الخادم الإنتاجي"، "لوحة معلومات الأسطول"، "اختبار بيئة التطوير").
  4. اختر مستوى الصلاحية:
    • قراءة فقط -- يمكنه الوصول لنقاط GET فقط؛ مناسب للوحات المعلومات والتقارير والتكاملات للقراءة فقط.
    • قراءة وكتابة -- وصول كامل لجميع النقاط بما في ذلك إنشاء وتعديل البيانات.
  5. انقر إنشاء.
  6. يُعرض مفتاح API الكامل مرة واحدة. انسخه فوراً واحفظه بأمان -- لا يمكن استرجاعه مرة أخرى بعد إغلاق هذا الحوار.

تمتلك مؤسستك حداً أقصى لعدد المفاتيح النشطة (يظهر في أعلى الصفحة). يُعطّل زر الإنشاء عند الوصول للحد.

الخطوة 2: إجراء أول طلب

استخدم مفتاح API في عنوان X-API-Key:

GET https://api.autogms.com/api/v1/garages
X-API-Key: agms_pk_live_your_key_here

يُرجع هذا قائمة بجميع الكراجات التي يمكن لمفتاحك الوصول إليها.

الخطوة 3: الوصول إلى بيانات الكراج

تتطلب جميع نقاط البيانات معرّف الكراج في عنوان URL:

GET https://api.autogms.com/api/v1/garages/{garageId}/bookings
X-API-Key: agms_pk_live_your_key_here

البيانات المتاحة

توفر واجهة API وصول القراءة والكتابة لجميع المجالات الرئيسية في كراجك:

الموردالقراءةالكتابة
الكراجاتتفاصيل الموقع، معلومات الاتصال--
العملاءملفات العملاء، سجل الحجوزات، المركباتإنشاء وتحديث العملاء والمركبات
المركباتتفاصيل المركبة، فك تشفير VINإنشاء وتحديث وحذف المركبات
الحجوزاتجميع الحجوزات مع الحالة والفنيين والقطع والمراحلإنشاء وتحديث وتغيير الحالة وحذف وتعيين الفنيين والقطع
مراحل الحجزمراحل العمل مع الفنيين المعينينإنشاء وتحديث وتغيير الحالة وحذف المراحل
الفنيونقائمة الفريق، إحصائيات الأداء، العمل المُسند--
الخدماتكتالوج الخدمات مع الأسعار--
المخزونمستويات المخزون، تنبيهات المخزون المنخفض، البحث بالباركودإنشاء عناصر، تحديث التفاصيل، تعديل المخزون
الفواتيرتفاصيل الفواتير، حالة الدفع--
التقديراتتفاصيل التقديرات، حالة الموافقة، البنودإنشاء وتحديث وإرسال التقديرات
أوامر الشراءتفاصيل أوامر الشراء، إحصائيات المشتريات--
خلجان العملتوفر الخلجان والتعيينات الحالية--
الويب هوكقائمة الاشتراكات، سجل التسليمإنشاء وتحديث وحذف واختبار الويب هوك

ملاحظة: تتطلب عمليات الكتابة مفتاح API بصلاحية قراءة وكتابة. مفاتيح القراءة فقط يمكنها الوصول لنقاط GET فقط.


حالات الاستخدام الشائعة

تكامل التشخيص

ربط معدات التشخيص للبحث عن المركبات وإنشاء الحجوزات:

GET  /api/v1/garages/{garageId}/vehicles/vin-lookup?vin=JTMHY7AJ5E4012345
POST /api/v1/garages/{garageId}/bookings

لوحة معلومات إدارة الأسطول

مراقبة جميع الأعمال النشطة وأحمال عمل الفنيين وتوفر الخلجان:

GET /api/v1/garages/{garageId}/bookings/counts
GET /api/v1/garages/{garageId}/technicians
GET /api/v1/garages/{garageId}/bays

تكامل كتالوج القطع

التحقق من مستويات المخزون وتعديل المخزون والحصول على تنبيهات المخزون المنخفض:

GET  /api/v1/garages/{garageId}/inventory?lowStock=true
GET /api/v1/garages/{garageId}/inventory/barcode/6291041500123
POST /api/v1/garages/{garageId}/inventory/{itemId}/adjust

أتمتة الحجوزات

إنشاء الحجوزات وتعيين الفنيين وإدارة مراحل العمل برمجياً:

POST /api/v1/garages/{garageId}/bookings
POST /api/v1/garages/{garageId}/bookings/{bookingId}/status
POST /api/v1/garages/{garageId}/bookings/{bookingId}/technician
POST /api/v1/garages/{garageId}/bookings/{bookingId}/stages

الإشعارات الفورية (الويب هوك)

استلام إشعارات فورية عند حدوث أحداث في كراجك:

POST /api/v1/garages/{garageId}/webhooks

اشترك في أحداث مثل booking.completed و inventory.low_stock و invoice.paid والمزيد. يرسل AutoGMS طلب HTTP POST إلى عنوان URL الخاص بك عند حدوث الحدث.

أحداث Webhook الشائعة في الإصدار v1 تشمل:

  • customer.created
  • booking.created
  • booking.updated
  • booking.status_changed
  • booking.completed
  • technician.assigned
  • estimate.created
  • estimate.sent
  • inventory.low_stock

التقارير المخصصة

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

GET /api/v1/garages/{garageId}/invoices?status=paid&dateFrom=2026-01-01
GET /api/v1/garages/{garageId}/purchase-orders/stats

مزامنة تقويم الأسطول (النمط الموصى به)

للتكاملات مثل AssetMinder، استخدم هذا النمط لتجنب تضارب الجدولة:

  1. اقرأ أولاً:
    • GET /api/v1/garages/{garageId}/bookings
    • GET /api/v1/garages/{garageId}/bookings/counts
    • GET /api/v1/garages/{garageId}/bays
  2. أنشئ/حدّث فترات التقويم الخارجي من حالات الحجوزات النشطة.
  3. كتابة اختيارية لإنشاء حجوزات عبر POST /bookings.
  4. التعامل مع حواجز الحجز:
    • GARAGE_CLOSED (409) -- التاريخ المحدد مغلق.
    • DATE_AT_CAPACITY (409) -- السعة اليومية مكتملة.
    • SLOT_AT_CAPACITY (409) -- الفترة الزمنية المحددة ممتلئة.
    • ACTIVE_JOB_EXISTS (409) -- نفس المركبة لديها عمل نشط بالفعل.
  5. استخدم الويب هوك لإبقاء التقاويم الخارجية شبه فورية، ثم قم بالمصالحة مع الاستقصاء الدوري.

تنسيق استجابة API

جميع الاستجابات تستخدم تنسيق JSON متسق.

استجابة ناجحة:

{
"success": true,
"data": { ... }
}

استجابة قائمة مع ترقيم الصفحات:

{
"success": true,
"data": [ ... ],
"pagination": {
"page": 1,
"limit": 20,
"total": 156,
"totalPages": 8,
"hasMore": true
}
}

استجابة خطأ:

{
"success": false,
"error": {
"type": "NotFoundError",
"message": "Booking not found",
"code": "RESOURCE_NOT_FOUND"
}
}

أخطاء الجدولة الشائعة في تكاملات الكتابة:

  • GARAGE_CLOSED (409)
  • DATE_AT_CAPACITY (409)
  • TIMESLOT_REQUIRED (400) عندما يتطلب الكراج فترة زمنية ولا يتم إرسال timeslot
  • INVALID_TIMESLOT (400) عندما تكون قيمة timeslot غير صالحة لذلك التاريخ
  • SLOT_AT_CAPACITY (409)
  • ACTIVE_JOB_EXISTS (409)

إذا كان الكراج يستخدم جدولة الفترات الزمنية، فأرسل الحقل timeslot بصيغة HH:MM عند إنشاء أو تحديث الحجز، مثلاً:

{
"date": "2026-03-04",
"timeslot": "09:00"
}

ترقيم الصفحات والتصفية

ترقيم الصفحات

جميع نقاط القوائم تدعم ترقيم الصفحات:

المعاملالافتراضيالحد الأقصىالوصف
page1--رقم الصفحة
limit20100عدد العناصر في الصفحة

مثال: GET /api/v1/garages/{garageId}/bookings?page=2&limit=50

الترتيب

استخدم معامل sort. أضف - في البداية للترتيب التنازلي:

  • sort=-date -- الأحدث أولاً
  • sort=name -- أبجدي

تصفية التاريخ

معظم نقاط القوائم تدعم تصفية نطاق التاريخ:

  • dateFrom=2026-01-01 -- السجلات من هذا التاريخ فصاعداً
  • dateTo=2026-01-31 -- السجلات حتى هذا التاريخ

تحديد المعدل

لكل مفتاح API حد طلبات في الدقيقة حسب مستواه:

المستوىالطلبات في الدقيقة
عادي60
متميز300
مؤسسي1,000

كل استجابة تتضمن رؤوس تحديد المعدل:

RateLimit-Limit: 60
RateLimit-Remaining: 42
RateLimit-Reset: 1706000000

إذا تجاوزت الحد، ستتلقى استجابة 429 Too Many Requests. انتظر حتى تنتهي فترة Retry-After قبل إجراء المزيد من الطلبات.


إدارة مفاتيح API

تُدار مفاتيح API من صفحة الوصول عبر API في لوحة تحكم مؤسستك. يمكن لأي مسؤول مؤسسة تنفيذ هذه الإجراءات.

لوحة تحكم الوصول عبر API

تعرض صفحة الوصول عبر API:

  • نظرة عامة على الإحصائيات -- أربع بطاقات ملخصة تعرض إجمالي الطلبات (30 يوماً)، ومعدل الأخطاء، ومتوسط زمن الاستجابة (مع مئويات p50/p95/p99 عند توفرها)، وإجمالي البيانات المنقولة.
  • جدول المفاتيح -- يسرد جميع المفاتيح (النشطة والملغاة) مع مقاييس لكل مفتاح:
العمودما يعرضه
الاسماسم المفتاح وبادئة مُقنّعة
الصلاحيةقراءة فقط أو قراءة وكتابة
الطلبات (30 يوماً)عدد الطلبات لآخر 30 يوماً، مع تفصيل طرق HTTP
مدى الحياةإجمالي عدد الطلبات عبر كامل المدة
الأخطاء (30 يوماً)عدد الأخطاء مع كشف الارتفاعات (يُنبّه إذا كان معدل أخطاء 24 ساعة ضعف معدل 30 يوماً)
زمن الاستجابةمتوسط وقت الاستجابة
البياناتإجمالي البيانات المنقولة
النشاطتواريخ أول وآخر طلب
الحالةنشط أو ملغى

إجراءات المفتاح

لكل مفتاح نشط ثلاثة إجراءات في الجدول:

  • عرض الاستخدام -- يفتح تفصيلاً يومياً مفصلاً للاستخدام وإحصائيات لكل نقطة نهاية لذلك المفتاح المحدد.
  • تدوير -- يُنشئ مفتاحاً جديداً ويُبطل القديم. يُعرض المفتاح الجديد مرة واحدة -- انسخه فوراً. استخدم هذا إذا كان هناك احتمال لتسريب المفتاح.
  • إلغاء -- يُعطّل المفتاح نهائياً. تبقى المفاتيح الملغاة مرئية في الجدول (باللون الرمادي) لأغراض التدقيق لكن لا يمكن استخدامها لطلبات API بعد ذلك.

التدوير والإلغاء إجراءات نهائية لا يمكن التراجع عنها.

بطاقات التحليلات

أسفل جدول المفاتيح، تعرض الصفحة تحليلات إضافية عند توفر البيانات:

  • تفصيل الطرق -- شريط مرئي يعرض توزيع الطلبات عبر طرق HTTP (GET، POST، PUT، PATCH، DELETE)
  • أكثر نقاط النهاية استخداماً (30 يوماً) -- مسارات API الأكثر استدعاءً مع أعداد الطلبات والأخطاء ومتوسط زمن الاستجابة
  • الأخطاء الأخيرة (7 أيام) -- أنماط الأخطاء مع رموز الحالة ورموز الخطأ وأعداد الحدوث ومسارات نموذجية
  • الطلبات حسب الساعة (30 يوماً) -- رسم بياني يعرض توزيع الطلبات عبر ساعات اليوم (بتوقيت UTC)
  • توزيع حجم الاستجابات -- كيفية توزيع أحجام حمولات الاستجابة
  • أكثر وكلاء المستخدم استخداماً (30 يوماً) -- أي مكتبات العملاء أو الأدوات تستدعي API
  • أكثر عناوين IP نشاطاً (30 يوماً) -- أي عناوين IP تولّد أكثر حركة مرور
  • الاستخدام حسب الكراج -- توزيع الطلبات لكل كراج مع معدلات الأخطاء وزمن الاستجابة

مرجع نقاط النهاية الكامل

جميع نقاط النهاية مسبوقة بـ /api/v1. نقاط الموارد تستخدم /garages/{garageId}/.

الكراجات

نقطة النهايةالوصف
GET /garagesقائمة جميع الكراجات المتاحة لهذا المفتاح
GET /garages/{garageId}تفاصيل الكراج

العملاء

نقطة النهايةالوصف
GET /garages/{gid}/customersقائمة عملاء الكراج
GET /garages/{gid}/customers/search?q=ahmedالبحث بالاسم أو البريد أو الهاتف
POST /garages/{gid}/customersإنشاء عميل
PATCH /garages/{gid}/customers/{cid}تحديث عميل
GET /garages/{gid}/customers/{cid}عرض العميل مع إحصائيات الحجوزات
GET /garages/{gid}/customers/{cid}/vehiclesقائمة مركبات العميل
POST /garages/{gid}/customers/{cid}/vehiclesإضافة مركبة للعميل
GET /garages/{gid}/customers/{cid}/bookingsقائمة حجوزات العميل

المركبات

نقطة النهايةالوصف
GET /garages/{gid}/vehiclesقائمة جميع المركبات
POST /garages/{gid}/vehiclesإنشاء مركبة
PATCH /garages/{gid}/vehicles/{vid}تحديث مركبة
DELETE /garages/{gid}/vehicles/{vid}حذف مركبة
GET /garages/{gid}/vehicles/{vid}تفاصيل المركبة
GET /garages/{gid}/vehicles/vin-lookup?vin=...فك تشفير VIN

الحجوزات

نقطة النهايةالوصف
GET /garages/{gid}/bookingsقائمة الحجوزات (تصفية حسب الحالة، التاريخ، العميل، الفني)
POST /garages/{gid}/bookingsإنشاء حجز
GET /garages/{gid}/bookings/countsعدد الحجوزات حسب الحالة
GET /garages/{gid}/bookings/{bid}تفاصيل الحجز الكاملة
PATCH /garages/{gid}/bookings/{bid}تحديث حجز
DELETE /garages/{gid}/bookings/{bid}حذف حجز (معلق/مؤكد فقط)
POST /garages/{gid}/bookings/{bid}/statusتغيير حالة الحجز
POST /garages/{gid}/bookings/{bid}/technicianتعيين فني
GET /garages/{gid}/bookings/{bid}/inventoryقائمة القطع المعينة
POST /garages/{gid}/bookings/{bid}/inventoryتعيين قطع للحجز
GET /garages/{gid}/bookings/{bid}/partsقائمة القطع المعينة (بديل)
GET /garages/{gid}/bookings/{bid}/attachmentsقائمة المرفقات
GET /garages/{gid}/bookings/{bid}/stagesقائمة مراحل المشروع
POST /garages/{gid}/bookings/{bid}/stagesإنشاء مرحلة
PATCH /garages/{gid}/bookings/{bid}/stages/{sid}تحديث مرحلة
POST /garages/{gid}/bookings/{bid}/stages/{sid}/statusتغيير حالة المرحلة
DELETE /garages/{gid}/bookings/{bid}/stages/{sid}حذف مرحلة

قيم دورة حياة المراحل المستخدمة عادةً في سير عمل المشاريع:

  • draft
  • open
  • in_progress
  • completed
  • invoiced
  • closed

الفنيون

نقطة النهايةالوصف
GET /garages/{gid}/techniciansقائمة الفنيين
GET /garages/{gid}/technicians/{tid}/statsإحصائيات الأداء
GET /garages/{gid}/technicians/{tid}/bookingsالحجوزات المُسندة

الخدمات

نقطة النهايةالوصف
GET /garages/{gid}/servicesكتالوج الخدمات
GET /garages/{gid}/services/{sid}تفاصيل الخدمة
GET /garages/{gid}/services/{sid}/pricesالأسعار حسب نوع المركبة

المخزون

نقطة النهايةالوصف
GET /garages/{gid}/inventoryقائمة العناصر
POST /garages/{gid}/inventoryإنشاء عنصر مخزون
GET /garages/{gid}/inventory/{iid}عرض عنصر
PATCH /garages/{gid}/inventory/{iid}تحديث عنصر
POST /garages/{gid}/inventory/{iid}/adjustتعديل المخزون (إضافة أو خصم)
GET /garages/{gid}/inventory/low-stockالعناصر تحت الحد الأدنى
GET /garages/{gid}/inventory/categoriesالفئات مع العدد
GET /garages/{gid}/inventory/statsإحصائيات المخزون
GET /garages/{gid}/inventory/barcode/{code}البحث بالباركود

الفواتير

نقطة النهايةالوصف
GET /garages/{gid}/invoicesقائمة الفواتير
GET /garages/{gid}/invoices/{iid}تفاصيل الفاتورة

التقديرات

نقطة النهايةالوصف
GET /garages/{gid}/estimatesقائمة التقديرات
POST /garages/{gid}/estimatesإنشاء تقدير
GET /garages/{gid}/estimates/{eid}تفاصيل التقدير
PATCH /garages/{gid}/estimates/{eid}تحديث تقدير
POST /garages/{gid}/estimates/{eid}/sendإرسال تقدير للعميل

أوامر الشراء

نقطة النهايةالوصف
GET /garages/{gid}/purchase-ordersقائمة أوامر الشراء
GET /garages/{gid}/purchase-orders/{pid}تفاصيل أمر الشراء
GET /garages/{gid}/purchase-orders/statsإحصائيات المشتريات

خلجان العمل

نقطة النهايةالوصف
GET /garages/{gid}/baysقائمة الخلجان مع الحالة الحالية

الويب هوك (Webhooks)

نقطة النهايةالوصف
GET /garages/{gid}/webhooksقائمة اشتراكات الويب هوك
POST /garages/{gid}/webhooksإنشاء اشتراك ويب هوك
PATCH /garages/{gid}/webhooks/{wid}تحديث ويب هوك
DELETE /garages/{gid}/webhooks/{wid}حذف ويب هوك
POST /garages/{gid}/webhooks/{wid}/testإرسال حدث تجريبي
GET /garages/{gid}/webhooks/{wid}/deliveriesعرض سجل التسليم

قريباً

  • OAuth 2.0 -- مصادقة الطرف الثالث لتكاملات السوق

هل تحتاج مساعدة إضافية؟

  • تفعيل الوصول عبر API: أرسل بريداً إلكترونياً إلى support@myautoGMS.com لإضافة إضافة الوصول عبر API إلى اشتراكك
  • إدارة المفاتيح: استخدم صفحة الوصول عبر API في لوحة تحكمك لإنشاء وتدوير وإلغاء المفاتيح
  • الدعم العام: أرسل بريداً إلكترونياً إلى support@myautoGMS.com
  • مراجعة نطاق التكامل والتصميم التقني: أرسل بريداً إلكترونياً إلى support@myautoGMS.com وأرفق:
    • الكراج(ات) المستهدفة
    • الصلاحيات المطلوبة (read أو read_write)
    • اتجاه المزامنة المتوقع (سحب فقط مقابل دفع + سحب)
    • الحجم المتوقع (طلبات/دقيقة، حجوزات/يوم)