SDK وCLI
يوزّع exoCortex ثلاثة عملاء لـ REST API v1. تنزّلونها مباشرة من الـ API وتضيفونها إلى مشروعكم:
| العميل | العنوان | المتطلبات |
|---|---|---|
| JavaScript | https://exocortex-api.ai-exo-cortex.com/sdk/exocortex.js |
بيئة تشغيل تدعم fetch، مثل Node.js 18 أو أحدث |
| Python | https://exocortex-api.ai-exo-cortex.com/sdk/exocortex.py |
الحزمة requests |
| CLI bash | https://exocortex-api.ai-exo-cortex.com/sdk/exo-cli |
curl وjq |
تقرأ جميعها مفتاح API الذي تمرّرونه إليها؛ ولا يحفظه أيٌّ منها. وتُنشئ تلقائيًا Idempotency-Key عند فتح تذكرة.
JavaScript
Section titled “JavaScript”import { ExoClient, ExoApiError } from './exocortex.js';
const exo = new ExoClient({ apiKey: process.env.EXO_API_KEY });
try { const created = await exo.tickets.create({ subject: 'Printer offline', description: 'Floor 2, room 204', priority: 'Medium', }); const { ticket } = await exo.tickets.get(created.ticket_key); await exo.tickets.comment(ticket.key, 'Toner replaced.');} catch (err) { if (err instanceof ExoApiError && err.code === 'rate_limited') { // أعيدوا المحاولة بعد err.retryAfter ثانية } else throw err;}يوفّر ExoApiError الخصائص status وcode وretryAfter، ومتن الاستجابة في body.
Python
Section titled “Python”import osfrom exocortex import ExoClient, ExoApiError
exo = ExoClient(api_key=os.environ['EXO_API_KEY'])
try: created = exo.tickets.create(subject='Printer offline', description='Floor 2, room 204') ticket = exo.tickets.get(created['ticket_key'])['ticket'] exo.tickets.comment(ticket['key'], 'Toner replaced.')except ExoApiError as err: print(err.status, err.code, err.retry_after)curl -fsSL https://exocortex-api.ai-exo-cortex.com/sdk/exo-cli -o exo-cli && chmod +x exo-cliexport EXO_API_KEY='nhk.<keyid>.<secret>'
./exo-cli ticket-create "Printer offline" "Floor 2, room 204" Medium./exo-cli ticket-get ACME-1042./exo-cli ticket-comment ACME-1042 "Toner replaced."باستخدام EXO_BASE_URL توجّهون CLI إلى عنوان آخر للـ API.
الانتقال من SDK القديمة
Section titled “الانتقال من SDK القديمة”الصنفان NHClient وNHError اسمان بديلان مُهمَلان لـ ExoClient وExoApiError. ترسل SDK الجديدة المفتاح في Authorization: Bearer ولم تعد ترسل المستأجر (tenant)، الذي تستنتجه الـ API من المفتاح. وقد أُزيلت الأداتان المساعدتان widgets وmapping.