Customized CTIT Edition | REST | JSON | JWT

اربط منتجك عبر بوابة CTIT

ابدأ من إعدادات البوابة: أنشئ تطبيقًا، اضبط الصلاحيات، ثم استخدم بيانات الدخول لاستدعاء الـ APIs. نزوّدك برابط السيرفر وبيانات الدخول.

الخطوة 1إنشاء تطبيق
الخطوة 2صلاحيات وحقول
الخطوة 3نسخ بيانات الدخول
الخطوة 4تسجيل الدخول واستدعاء APIs
جديد — معالج الربط سجّل دخولك ← اربط أودو (لينك / قاعدة / يوزر) ← ننشئ التطبيق هناك ونرسل Postman بالإيميل.
1
التطبيقإنشاء من البوابة
2
الصلاحياتموديلات وحقول
3
بيانات الدخولclient_id / secret
4
استدعاء APIslogin → data
01

ما هي بوابة الـ API؟

طبقة REST آمنة لأنظمة الخلفية. تطبيقات الموبايل والمواقع وبوابات الشركاء والخدمات الخلفية تتصل عبر HTTPS وJSON وJWT - بدون الوصول مباشرة لقاعدة البيانات.

ترتيب مهم
الربط يبدأ دائمًا من إعدادات البوابة: أنشئ تطبيقًا، اضبط الصلاحيات، ثم شارك بيانات الدخول. بدون تطبيق يرجع تسجيل الدخول invalid_client.

ما الذي نتحقق منه

  • بيانات التطبيق
  • هوية المستخدم (JWT)
  • الصلاحيات (موديلات / حقول)
  • حدود الطلبات وسجل المراجعة

لمن هذه الصفحة؟

مسؤولو البوابة (الإعداد) والمبرمجون الذين يبنون أي عميل: موبايل أو ويب أو أنظمة شركاء.

02

بيانات الربط

لربط تطبيقك أو نظامك، تواصل معنا. نزوّدك ببيانات البيئة — لا توجد بيانات عامة افتراضيًا.

البندما نزوّده
base_urlرابط السيرفر (بدون / في النهاية)
قاعدة البياناتاسم قاعدة البيانات (للمرجع والدعم)
login / passwordيوزر وباسورد مستخدم الـ API
client_id / client_secretمن Credentials التطبيق (بعد إعداد البوابة)

واجهة الويب: {{base_url}}/web/login
تسجيل دخول API: POST {{base_url}}/api/v1/auth/login

مهم
لا تخمّن الروابط أو بيانات الدخول. نزوّدك بـ base_url، قاعدة البيانات، اليوزر، الباسورد، client_id، و client_secret قبل البدء في التطوير.
03

إعداد البوابة - إنشاء تطبيق

نفّذ هذا أولًا قبل أي برمجة للعميل.

1
افتح API Gateway ← Applications.
2
اضغط New واكتب اسمًا واضحًا (مثل تطبيق الموبايل).
3
أبقِ Active مفعلًا. ويمكن ضبط Rate Policy و CORS اختياريًا.
4
احفظ - النظام يولّد تلقائيًا client_id و client_secret ومفتاح JWT.

تبويب Credentials

الحقلالمطلوب
client_idانسخه - معرّف التطبيق العام
client_secretانسخه بأمان - يُستخدم في تسجيل الدخول فقط
access_token_ttl_minutesالافتراضي 15 دقيقة
refresh_token_ttl_daysالافتراضي 14 يومًا
04

الصلاحيات والحقول

بدون Scopes يمكن تسجيل الدخول، لكن طلبات البيانات ترجع أخطاء صلاحيات.

1
افتح التطبيق ← Scopes & Permissions ← أضف.
2
اختر الموديل (مثل res.partner).
3
فعّل القراءة / الإنشاء / التعديل / الحذف / الاستدعاء حسب الحاجة.
4
حدد حقول القراءة والكتابة المسموحة.
5
اضبط الحد الأقصى لكل طلب وفلتر Domain اختياريًا.
05

إعدادات إضافية

استدعاءات مخصصة

سجّل slugs للدوال عبر /call/{slug}.

الشاشات والمستخدمون

اربط مفاتيح الشاشات بالمستخدمين لـ menu-access.

مستخدمون محظورون

المحظورون لا يسجّلون دخولًا ولا يستدعون هذا التطبيق.

سجلات المراجعة

API Gateway ← Audit Logs للتتبع والتشخيص.

06

شارِك مع المطوّر

العنصرملاحظات
base_urlنزوّدك برابط السيرفر
قاعدة البياناتاسم قاعدة البيانات (نزوّده)
client_idمن تبويب Credentials
client_secretسرّي - شارِكه بخصوصية
يوزر + باسوردمستخدم نشط
07

مسار الربط

Setup: Create Application + Scopes → share client_id / client_secret / user → POST /api/v1/auth/login → access_token + refresh_token → /api/v1/info/* & /api/v1/data/* with Authorization: Bearer ... + X-Client-Id
08

المصادقة

تسجيل الدخول

POST{{base_url}}/api/v1/auth/login
REQUESTJSON
{
  "client_id": "YOUR_CLIENT_ID",
  "client_secret": "YOUR_CLIENT_SECRET",
  "login": "user@company.com",
  "password": "******"
}
احفظ
access_token | refresh_token | expires_in | user.id

تجديد التوكن

POST/api/v1/auth/refresh
REQUESTJSON
{
  "client_id": "YOUR_CLIENT_ID",
  "refresh_token": "CURRENT_REFRESH_TOKEN"
}

إلغاء الجلسة

POST/api/v1/auth/revoke
09

هيدرز الطلب

Headerالقيمة
AuthorizationBearer
X-Client-Id
Content-Typeapplication/json
10

استكشاف الصلاحيات

GET/api/v1/info/models
GET/api/v1/info/models/{model}/fields
GET/api/v1/info/methods
قاعدة
اكتب فقط الحقول الموجودة في write_fields.
11

قراءة وكتابة البيانات

المسار الأساسي: /api/v1/data/{model}

GET/api/v1/data/res.partner?limit=20&lang=ar
POST/api/v1/data/res.partner
CREATEJSON
{
  "values": {
    "name": "New Customer",
    "email": "new@example.com"
  }
}
PATCH/api/v1/data/res.partner/55
DELETE/api/v1/data/res.partner/55
POST/api/v1/data/{model}/{id}/call/{slug}
12

مرجع النقاط

MethodPathالغرض
POST/api/v1/auth/loginدخول
POST/api/v1/auth/refreshتجديد
POST/api/v1/auth/revokeإلغاء
GET/api/v1/info/modelsالموديلات
GET/api/v1/info/models/{model}/fieldsالحقول
GET/api/v1/data/{model}قائمة
GET/api/v1/data/{model}/{id}قراءة
POST/api/v1/data/{model}إنشاء
PATCH/api/v1/data/{model}/{id}تعديل
DELETE/api/v1/data/{model}/{id}حذف
14

كولكشن Postman (كامل)

كولكشن كامل: 4 مجلدات و 34 طلبًا: 1. Authentication (Login, Refresh, Revoke + أمثلة أخطاء)، 2. Metadata & Discovery (models, fields, methods, menu-access)، 3. Generic CRUD (partners, products, sale orders)، 4. Sale Order - Business Automation (confirm, picking, invoice, payment, process_operations). سكربت Login يحفظ التوكنات تلقائيًا.

المتغيرالغرض
base_urlنزوّدك برابط السيرفر
client_id / client_secretمن Credentials التطبيق
login / passwordمستخدم النظام
model / record_idأهداف CRUD
method_slug / menu_keyاستدعاء مخصص و menu-access
13

قائمة التحقق قبل الإطلاق

  • تم إنشاء Application في إعدادات البوابة
  • تمت تهيئة Scopes (موديل + حقول + عمليات)
  • تمت مشاركة base_url و client_id و client_secret
  • Login يرجع التوكنات والمستخدم
  • الطلبات المحمية ترسل Authorization و X-Client-Id
  • عند 401 يتم Refresh ثم إعادة المحاولة مرة واحدة

تحتاج صلاحية؟

نزوّدك بـ base_url وقاعدة البيانات واليوزر والباسورد وبيانات الـ API — تواصل معنا للبدء.

تواصل معنا