مرجع واجهة برمجة التطبيقات

توفّر هذه الصفحة مستندات مرجعية لنقاط نهاية واجهة برمجة التطبيقات Metrics Configuration Generator (MCG).

نظرة عامة على نقاط النهاية

توضّح الأقسام التالية نقاط نهاية واجهة برمجة التطبيقات المتاحة في MCG.

إعدادات المقاييس

كتالوجات إشارات المركبات

  • ‫POST /api/v1/vs/: لإنشاء كتالوج جديد لإشارات المركبات أو تعديل كتالوج حالي
  • ‫GET /api/v1/vs/: تتيح هذه السمة عرض جميع البيانات الوصفية في Vehicle Signal Catalog.
  • ‫DELETE /api/v1/vs/{version}: لحذف "كتالوج إشارات المركبات" المحدّد

حالة الخدمة

  • GET /health: التحقّق من حالة الخدمة

أنواع محتوى Protobuf

تقبل العديد من نقاط نهاية واجهة برمجة التطبيقات البيانات أو تعرضها بتنسيق Protocol Buffers (protobuf). يتم استخدام نوعَين من المحتوى:

  • ‫application/x-protobuf: تشير هذه القيمة إلى بيانات protobuf بتنسيق سلكي ثنائي. هذا التنسيق فعّال للتواصل بين الأجهزة، ولكن لا يمكن لشخص عادي قراءته.
  • text/x-protobuf: يشير إلى بيانات protobuf بتنسيقها النصي، والذي يمكن لشخص عادي قراءته وهو مفيد لتصحيح الأخطاء أو الفحص اليدوي.

عندما تتيح نقطة نهاية استخدام تنسيقات protobuf متعددة لطلب أو استجابة، استخدِم العنوان Content-Type لتحديد تنسيق بيانات الطلب، والعنوان Accept لتحديد التنسيق المحدّد لبيانات الاستجابة. على سبيل المثال:

  • -H 'Content-Type: application/x-protobuf'
  • -H 'Accept: text/x-protobuf'

استدعاء واجهة برمجة التطبيقات

تستخدم الأمثلة في هذه الصفحة curl لطلب REST API وتفترض أنّك ضبطت متغيّر البيئة SERVICE_URL للإشارة إلى المضيف الذي تم نشر MCG فيه. عند التشغيل محليًا، يكون هذا عادةً http://localhost:8005.

لاستهداف مثيل Cloud Run عن بُعد، اضبط SERVICE_URL باستخدام gcloud:

SERVICE_URL=$(gcloud run services describe mcg-service \
  --region=GCP_REGION \
  --format='value(status.url)')

عند طلب نقاط نهاية Cloud Run عن بُعد، أضِف عنوان التفويض التالي إلى أوامر curl:

-H "Authorization: Bearer $(gcloud auth print-identity-token)"

إعدادات المقاييس

يصف هذا القسم نقاط النهاية لإنشاء إعدادات المقاييس والتحقّق من صحتها.

POST /api/v1/generate_metrics_config

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

تفاصيل نقطة النهاية
معلمات طلب البحث ‫ignore_validation: boolean
اختياري. إذا كانت القيمة true، يتم تجاهل أخطاء التحقّق من الصحة وعرض MetricsConfig.
نص الطلب يجب أن يحتوي نص الطلب على تفاصيل طلب إعداد المقاييس بتنسيق JSON.
استجابة ناجحة يحتوي نص الاستجابة على رسالة MetricsConfig بتنسيق application/x-protobuf أو text/x-protobuf.
يحتوي العنوان Metrics-Config-Size على حجم الإعدادات بالبايت.
مثال
curl -H "Content-Type: application/json" \
  -H "Accept: text/x-protobuf" \
  --data-binary @PATH_TO_METRICS_CONFIG_JSON \
  "$SERVICE_URL/api/v1/generate_metrics_config"
      

POST /api/v1/get_file_descriptor_set

عرض واصفات الملفات لـ MetricsConfig معيّن لفك ترميز التقارير

تفاصيل نقطة النهاية
نص الطلب يجب أن يحتوي نص الطلب على رسالة android.sdv.telemetry.MetricsConfig بتنسيق application/x-protobuf أو text/x-protobuf.
استجابة ناجحة يحتوي نص الاستجابة على رسالة google.protobuf.FileDescriptorSet بتنسيق application/x-protobuf أو text/x-protobuf.
مثال
curl -H "Content-Type: application/x-protobuf" \
  -H "Accept: application/x-protobuf" \
  --data-binary @PATH_TO_METRICS_CONFIG_PB \
  "$SERVICE_URL/api/v1/get_file_descriptor_set"
      

POST /api/v1/validate_metrics_config

التحقّق من صحة MetricsConfig المقدَّم، وعرض قائمة بأي أخطاء في التحقّق من الصحة

تفاصيل نقطة النهاية
معلمات طلب البحث ‫return_config: boolean
اختياري. إذا كانت القيمة true، يتم عرض MetricsConfig بعد إتمام عملية التحقّق بنجاح.
نص الطلب يجب أن يحتوي نص الطلب على رسالة android.sdv.telemetry.MetricsConfig بتنسيق application/x-protobuf أو text/x-protobuf.
استجابة ناجحة يحتوي نص الاستجابة على عنصر فارغ (تلقائي) أو MetricsConfig (إذا كانت قيمة return_config هي true).
يحتوي العنوان Metrics-Config-Size على حجم الإعدادات بالبايت.
مثال
curl -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  --data-binary @PATH_TO_METRICS_CONFIG_JSON \
  "$SERVICE_URL/api/v1/validate_metrics_config"
      

كتالوجات إشارات المركبات

يوضّح هذا القسم نقاط النهاية لإدارة "كتالوجات إشارات المركبات".

POST /api/v1/vs/

أنشئ كتالوجًا جديدًا لإشارات المركبات أو عدِّل كتالوجًا حاليًا.

تفاصيل نقطة النهاية
نص الطلب يجب أن يحتوي نص الطلب على عنصر JSON مع سلسلة version وFileDescriptorSet بترميز base64 لـ vehicle_signals.
{
  "version": "string",
  "vehicle_signals": "string"
}
استجابة ناجحة في حال نجاح العملية، تعرض واجهة برمجة التطبيقات application/json مع إصدار الكتالوج الذي تمت إضافته أو تعديله:
{"version": "string"}
مثال للحصول على تعليمات حول إنشاء FileDescriptorSet بترميز base64 لحقل vehicle_signals، يُرجى الاطّلاع على كتالوجات إشارات المركبات.
curl -H "Content-Type: application/json" \
  --data-binary @- "$SERVICE_URL/api/v1/vs/" << EOF
{
  "version": "v1.0",
  "vehicle_signals": "VEHICLE_SIGNALS_BASE64"
}
EOF
      

GET /api/v1/vs/

عرض قائمة بجميع البيانات الوصفية في Vehicle Signal Catalog

تفاصيل نقطة النهاية
استجابة ناجحة إذا نجح الطلب، ستعرض واجهة برمجة التطبيقات application/json الذي يحتوي على قائمة بإصدارات الكتالوج:
{"versions": [{"version": "string"}]}
مثال
curl "$SERVICE_URL/api/v1/vs/"
      

DELETE /api/v1/vs/{version}

لحذف "كتالوج إشارات المركبات" المحدّد

تفاصيل نقطة النهاية
مَعلمات المسار ‫version: string
مطلوبة معرّف Vehicle Signal Catalog المطلوب حذفه، كما هو موضّح في حقل version لطلب POST.
استجابة ناجحة في حال نجاح الطلب، تعرض واجهة برمجة التطبيقات الرمز application/json مع إصدار الكتالوج الذي تم حذفه:
{"version": "string"}
مثال
curl --request DELETE "$SERVICE_URL/api/v1/vs/v1.0"
      

حالة الخدمة

يصف هذا القسم نقاط النهاية للتحقّق من حالة الخدمة.

GET /health

تحقَّق من حالة الخدمة.

تفاصيل نقطة النهاية
استجابة ناجحة إذا كانت الخدمة سليمة، ستعرض رمز الحالة 200 OK.
مثال
curl "$SERVICE_URL/health"
      

الردود التي تتضمّن أخطاء

عندما يؤدي طلب بيانات من واجهة برمجة التطبيقات إلى حدوث خطأ (HTTP status 4xx أو 5xx)، يحتوي نص الاستجابة على عنصر خطأ بالبنية التالية:

{
  "error": {
    "code": 400,
    "status": "INVALID_ARGUMENT",
    "message": "Request validation failed",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.BadRequest",
        "fieldViolations": [
          {
            "field": "fieldName",
            "description": "error description"
          }
        ]
      }
    ]
  }
}
حقول الخطأ
code int32
رمز حالة HTTP (على سبيل المثال، 400 أو 404 أو 500).
status string
رمز الحالة الأساسي لـ Google RPC (على سبيل المثال، INVALID_ARGUMENT أو NOT_FOUND أو INTERNAL).
message string
رسالة خطأ موجّهة للمطوّرين باللغة الإنجليزية.
details Array<object>
مصفوفة من العناصر التي تحتوي على تفاصيل إضافية عن الخطأ، ويتم تحديدها من خلال العضو @type.