وثائق أصول Core

توثيق محرك حالة العالم الحتمي ومراجع API.

وثائق بوابة القرار

HTTP API

يقدم Asset Core واجهات برمجة التطبيقات HTTP من خلال خادمين: خادم الكتابة للالتزامات وخادم القراءة للاستعلامات. تحافظ هذه الفصلية على تحديد الكتابات وسرعة القراءة مع الحفاظ على مصدر واحد للحقيقة.

نظرة عامة

واجهة برمجة التطبيقات (API) تعتمد على REST مع حمولات JSON ومصادقة باستخدام رمز الحامل الإلزامي. كلا الخادمين يوفران نقاط نهاية صحية للمراقبة، وتشتمل الاستجابات على بيانات تعريفية عن الحداثة حيثما كان ذلك مناسبًا. تلخص هذه الصفحة مساحة السطح بينما يوفر مرجع OpenAPI العقد الكامل.

جميع نقاط بيانات API تحت نطاقات /v1/write/namespaces/{namespace_id} و /v1/read/namespaces/{namespace_id}. تعتبر النطاقات حدود العزل، لذا يجب تضمين النطاق الصحيح في كل طلب.

المواصفات الكاملة متاحة في OpenAPI reference.

الهيكل

التحكم في الطائرة الخاصة بالمصادقة والمساحة الاسمية

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

الطريقةالمسارالوصف
GET/v1/write/auth/whoamiفحص الشخص الحالي
GET/v1/write/auth/permissionsقائمة الأذونات للتوكن الحالي
GET/v1/write/namespacesقائمة المساحات
GET/v1/write/namespaces/{namespace_id}جلب تفاصيل المساحة
GET/v1/write/namespaces/changesاستعلام عن تغييرات المساحة
GET/v1/write/namespaces/statusقائمة لقطات حالة المساحة
GET/v1/write/namespaces/{namespace_id}/statusالحصول على حالة المساحة
POST/v1/write/namespaces/{namespace_id}/lifecycleتوفير أو حذف مساحة
POST/v1/write/namespaces/{namespace_id}/operational_stateتعيين وضع التشغيل للمساحة
POST/v1/write/namespaces/{namespace_id}/placementتحديث بيانات التوزيع
POST/v1/write/namespaces/fork_from_snapshotإنشاء نسخة من مساحة من لقطة

نقاط نهاية الكتابة ذات نطاق الاسم

تتعامل هذه النقاط النهائية مع الكتابات. commit/preflight لا يغير البيانات ولكنه يستخدم نفس قواعد التحقق مثل الالتزام الحقيقي. استخدم دائمًا مفاتيح عدم التكرار لعمليات الالتزام في الإنتاج حتى تظل المحاولات آمنة.

الطريقةالمسارالوصف
POST/v1/write/namespaces/{namespace_id}/commitتقديم معاملة
POST/v1/write/namespaces/{namespace_id}/commit/preflightالتحقق من معاملة بدون تغيير
POST/v1/write/namespaces/{namespace_id}/commits/{commit_id}/reverseتطبيق خطة عكسية مخزنة من جانب التراجع (تم التحقق من النزاع)
POST/v1/write/namespaces/{namespace_id}/register_classتسجيل فئة أصل جديدة
POST/v1/write/namespaces/{namespace_id}/register_class_shapeتسجيل شكل لفئة
POST/v1/write/namespaces/{namespace_id}/register_class_continuous_shape_1dتسجيل شكل مستمر بعدد أبعاد 1D
POST/v1/write/namespaces/{namespace_id}/register_class_continuous_shape_2dتسجيل شكل مستمر بعدد أبعاد 2D

نقاط نهاية القراءة ذات نطاق الاسم

تقوم نقاط النهاية الخاصة بالقراءة بكشف التوقعات المستمدة من سجل الالتزام وتضمين بيانات التعريف الخاصة بالحداثة حتى تتمكن من التفكير في القدم.

تم إدراج نقاط النهاية المختارة للقراءة أدناه؛ راجع مرجع OpenAPI للحصول على الكتالوج الكامل.

الطريقةالمسارالوصف
GET/v1/read/namespaces/{namespace_id}/containersقائمة الحاويات
GET/v1/read/namespaces/{namespace_id}/containers/{id}الحصول على بيانات الحاوية
GET/v1/read/namespaces/{namespace_id}/containers/{id}/balancesالحصول على أرصدة الحاوية
GET/v1/read/namespaces/{namespace_id}/containers/{id}/slotsالحصول على فتحات الحاوية
GET/v1/read/namespaces/{namespace_id}/containers/{id}/grid/cellsالحصول على مواضع الشبكة
GET/v1/read/namespaces/{namespace_id}/containers/{id}/grid/freeالعثور على مساحة فارغة في الشبكة
GET/v1/read/namespaces/{namespace_id}/containers/{id}/contentsمحتويات الحاوية الموحدة
GET/v1/read/namespaces/{namespace_id}/containers/{id}/continuous_1d/placementsمواضع مستمرة 1D
GET/v1/read/namespaces/{namespace_id}/containers/{id}/continuous_2d/placementsمواضع مستمرة 2D
GET/v1/read/namespaces/{namespace_id}/containers/{id}/commitsتاريخ التزام الحاوية
GET/v1/read/namespaces/{namespace_id}/commitsتاريخ الالتزام
GET/v1/read/namespaces/{namespace_id}/classesقائمة الفئات المسجلة
GET/v1/read/namespaces/{namespace_id}/classes/statsإحصائيات سجل الفئات
GET/v1/read/namespaces/{namespace_id}/classes/{id}الحصول على تفاصيل الفئة
GET/v1/read/namespaces/{namespace_id}/classes/{id}/shapesالحصول على أشكال الفئة
GET/v1/read/namespaces/{namespace_id}/instancesقائمة الحالات
GET/v1/read/namespaces/{namespace_id}/instances/{id}الحصول على تفاصيل الحالة
GET/v1/read/namespaces/{namespace_id}/owners/{id}/summaryملخص المالك
GET/v1/read/namespaces/{namespace_id}/freshnessالحصول على بيانات النضارة
GET/v1/read/namespaces/{namespace_id}/replayإعادة تشغيل أحداث سجل الالتزام
GET/v1/read/namespaces/{namespace_id}/streamبث الالتزامات عبر SSE

نقاط نهاية الصحة العالمية

نقاط نهاية الصحة والقياسات مصممة لموازني الحمل وأنظمة المراقبة. يجب أن تكون جزءًا من فحوصات النشر القياسية الخاصة بك.

الطريقةالمسارالوصف
GET/v1/write/healthكتابة حالة صحة الـ daemon
GET/v1/read/healthقراءة حالة صحة الـ daemon
GET/v1/write/livezكتابة اختبار حيوية الـ daemon
GET/v1/read/livezقراءة اختبار حيوية الـ daemon
GET/v1/write/readyzكتابة اختبار جاهزية الـ daemon
GET/v1/read/readyzقراءة اختبار جاهزية الـ daemon
GET/v1/write/startupzكتابة اختبار بدء تشغيل الـ daemon
GET/v1/read/startupzقراءة اختبار بدء تشغيل الـ daemon
GET/v1/write/metricsكتابة مقاييس Prometheus للـ daemon (المستمع عند التمكين)
GET/v1/read/metricsقراءة مقاييس Prometheus للـ daemon (المستمع عند التمكين)

حقول

رؤوس الطلبات

العنوانمطلوبالوصف
Authorizationنعمرمز الحامل للمستخدم الحالي
Content-Typeنعميجب أن يكون application/json لطلبات POST
x-assetcore-namespaceشرطيمساحة الاسم لنقاط نهاية قراءة الصحة/التحقق عند عدم التكوين
x-assetcore-min-world-seqلايتطلب إسقاطًا للوصول إلى تسلسل عالمي أدنى
x-correlation-idلامعرف ارتباط العميل للتتبع

رؤوس الاستجابة

العنوانالوصف
x-asset-idempotencyhit إذا كانت الاستجابة قد تم تقديمها من ذاكرة التخزين المؤقت للمعاملات المتكررة
Content-Typeدائمًا application/json

حقول الاستجابة الشائعة

استجابات النجاح تشمل:

{
  "namespace": 5001,
  "commit_id": "00000000000000000000000000000001",
  "outcome": "Committed",
  "world_seq_start": 42,
  "world_seq_end": 42,
  "event_count": 2,
  "start_time_ms": 1769800000000,
  "commit_time_ms": 1769800000123,
  "server_correlation_id": "wr-0000000000000001-0000000000000042",
  "client_correlation_id": "doc-example-2026-01-15",
  "echo": { ... }
}

استجابات ما قبل الطيران تشمل: status, executed_ops, failed_op_index, op_outcomes, و validated_world_seq. انظر ما قبل الطيران والالتزام العكسي للمعاني.

استجابات الاستعلام تشمل الحداثة:

{
  "server_correlation_id": "rd-0000000000000001-0000000000000042",
  "client_correlation_id": "doc-example-2026-01-15",
  "freshness": {
    "namespace": 5001,
    "world_seq": 42,
    "commit_log_world_seq": 45,
    "lag": 3,
    "lag_ms": 125
  }
}

أمثلة

تقديم معاملة

curl -X POST http://localhost:8080/v1/write/namespaces/5001/commit \
  -H "Authorization: Bearer $ASSETCORE_WRITE_TOKEN" \
  -H "x-correlation-id: doc-example-2026-01-15" \
  -H "Content-Type: application/json" \
  -d '{
    "operations": [
      {
        "op": "CreateContainer",
        "args": {
          "container_id": 1001,
          "kind": { "type": "balance" },
          "owner": null,
          "policies": null
        }
      }
    ],
    "idempotency_key": "create-container-2026-01-15"
  }'

استجابة:

{
  "namespace": 5001,
  "commit_id": "00000000000000000000000000000001",
  "outcome": "Committed",
  "world_seq_start": 1,
  "world_seq_end": 1,
  "event_count": 1,
  "start_time_ms": 1769800000000,
  "commit_time_ms": 1769800000123,
  "server_correlation_id": "wr-0000000000000001-0000000000000042",
  "client_correlation_id": "doc-example-2026-01-15",
  "echo": {
    "idempotency_key": "create-container-2026-01-15"
  },
  "created_entities": {
    "containers": [1001]
  }
}

استعلام عن أرصدة الحاويات

curl -H "Authorization: Bearer $ASSETCORE_READ_TOKEN" \
  http://localhost:8081/v1/read/namespaces/5001/containers/1001/balances

استجابة:

{
  "container_id": 1001,
  "balances": [
    {
      "class_id": 100,
      "key": 1,
      "quantity": 500
    }
  ],
  "server_correlation_id": "rd-0000000000000001-0000000000000042",
  "freshness": {
    "namespace": 5001,
    "world_seq": 1,
    "commit_log_world_seq": 1,
    "lag": 0,
    "lag_ms": 0
  }
}

تحقق من الصحة

curl -H "Authorization: Bearer $ASSETCORE_ADMIN_TOKEN" \
  http://localhost:8080/v1/write/health

استجابة:

{
  "status": "healthy",
  "version": "0.1.0",
  "api_version": "0.1.0",
  "build_git_sha": "abc123",
  "uptime_secs": 3600
}