REST · JSON · JWT

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

ابدأ من أودو: أنشئ تطبيقًا، اضبط الصلاحيات، ثم استخدم بيانات الدخول لاستدعاء الـ APIs. سيرفر التجربة: https://api.ctit.com.sa

الخطوة 1إنشاء تطبيق
الخطوة 2صلاحيات وحقول
الخطوة 3نسخ بيانات الدخول
الخطوة 4تسجيل الدخول واستدعاء APIs
1
التطبيقإنشاء من أودو
2
الصلاحياتموديلات وحقول
3
بيانات الدخولclient_id / secret
4
استدعاء APIslogin → data
01

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

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

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

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

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

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

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

02

سيرفر التجربة

الرابط الأساسي

https://api.ctit.com.sa

واجهة أودو: https://api.ctit.com.sa/web/login
تسجيل دخول API: POST /api/v1/auth/login

الصلاحية
اطلب من CTIT مستخدم أودو بصلاحية API Gateway Manager لإنشاء التطبيقات والتجربة.
03

إعداد أودو — إنشاء تطبيق

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

1
ثبّت الموديول api_gateway_rest إن لزم.
2
افتح API Gateway ← Applications.
3
اضغط New واكتب اسمًا واضحًا (مثل تطبيق الموبايل).
4
أبقِ Active مفعلًا. ويمكن ضبط Rate Policy و CORS اختياريًا.
5
احفظ — أودو يولّد تلقائيًا 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_urlhttps://api.ctit.com.sa
client_idمن تبويب Credentials
client_secretسرّي — شارِكه بخصوصية
يوزر + باسوردمستخدم أودو نشط
07

مسار الربط

Odoo: 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

المصادقة

تسجيل الدخول

POSThttps://api.ctit.com.sa/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}حذف
13

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

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

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

تواصل مع CTIT للحصول على بيانات التجربة على api.ctit.com.sa

تواصل معنا