एपीआई का संदर्भ

इस पेज पर, Metrics Configuration Generator (MCG) API एंडपॉइंट के लिए रेफ़रंस दस्तावेज़ दिया गया है.

एंडपॉइंट की खास जानकारी

यहां दिए गए सेक्शन में, MCG में उपलब्ध एपीआई एंडपॉइंट के बारे में बताया गया है.

मेट्रिक का कॉन्फ़िगरेशन

  • POST /api/v1/generate_metrics_config: मेट्रिक कॉन्फ़िगरेशन के अनुरोध की जानकारी से MetricsConfig इंस्टेंस बनाएं.
  • POST /api/v1/get_file_descriptor_set: यह रिपोर्ट डिकोड करने के लिए, दिए गए MetricsConfig के लिए फ़ाइल डिस्क्रिप्टर दिखाता है.
  • POST /api/v1/validate_metrics_config: पास किए गए MetricsConfig की पुष्टि करता है और पुष्टि करने से जुड़ी गड़बड़ियों की सूची दिखाता है.

वाहन के सिग्नल कैटलॉग

  • POST /api/v1/vs/: नया वाहन सिग्नल कैटलॉग बनाएं या मौजूदा कैटलॉग अपडेट करें.
  • GET /api/v1/vs/: Vehicle Signal Catalog के सभी मेटाडेटा की सूची बनाएं.
  • DELETE /api/v1/vs/{version}: इससे, चुने गए वाहन के सिग्नल कैटलॉग को मिटाया जा सकता है.

सेवा की स्थिति

  • GET /health: सेवा की स्थिति देखें.

प्रोटोबफ़ कॉन्टेंट के टाइप

कई एपीआई एंडपॉइंट, प्रोटोकॉल बफ़र (प्रोटोबफ़) फ़ॉर्मैट में डेटा स्वीकार करते हैं या दिखाते हैं. दो तरह के कॉन्टेंट का इस्तेमाल किया जाता है:

  • application/x-protobuf: यह बाइनरी वायर फ़ॉर्मैट में, प्रोटोबफ़ डेटा दिखाता है. यह फ़ॉर्मैट, मशीन-टू-मशीन कम्यूनिकेशन के लिए बेहतर है. हालाँकि, इसे इंसान नहीं पढ़ सकते.
  • text/x-protobuf: यह टेक्स्ट फ़ॉर्मैट में प्रोटॉबफ़ डेटा दिखाता है. इसे आसानी से पढ़ा जा सकता है. साथ ही, यह डीबग करने या मैन्युअल तरीके से जांच करने के लिए फ़ायदेमंद होता है.

जब कोई एंडपॉइंट, अनुरोध या जवाब के लिए एक से ज़्यादा प्रोटोबफ़ फ़ॉर्मैट इस्तेमाल करता है, तो अनुरोध के डेटा का फ़ॉर्मैट तय करने के लिए Content-Type हेडर का इस्तेमाल करें. साथ ही, जवाब के डेटा का चुना गया फ़ॉर्मैट तय करने के लिए Accept हेडर का इस्तेमाल करें. उदाहरण के लिए:

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

एपीआई को कॉल करना

इस पेज पर दिए गए उदाहरणों में, REST API को कॉल करने के लिए curl का इस्तेमाल किया गया है. साथ ही, यह माना गया है कि आपने curl एनवायरमेंट वैरिएबल को उस होस्ट को रेफ़र करने के लिए सेट किया है जहाँ MCG को डिप्लॉय किया गया है.SERVICE_URL स्थानीय तौर पर चलाने पर, यह आम तौर पर http://localhost:8005 होता है.

किसी रिमोट Cloud Run इंस्टेंस को टारगेट करने के लिए, SERVICE_URL को gcloud का इस्तेमाल करके सेट करें. इसके बाद, अपनी curl कमांड में OpenID Connect (OIDC) आइडेंटिटी टोकन के साथ ऑथराइज़ेशन हेडर जोड़ें:

SERVICE_URL=$(gcloud run services describe mcg-service --region=<var label="Google Cloud region">GCP_REGION</var> --format='value(status.url)')

# Authorization header to append to curl command:
-H "Authorization: Bearer $(gcloud auth print-identity-token)"

मेट्रिक का कॉन्फ़िगरेशन

इस सेक्शन में, मेट्रिक कॉन्फ़िगरेशन जनरेट करने और उनकी पुष्टि करने के लिए एंडपॉइंट के बारे में बताया गया है.

POST /api/v1/generate_metrics_config

मेट्रिक कॉन्फ़िगरेशन के अनुरोध की जानकारी से MetricsConfig इंस्टेंस बनाएं. इस प्रोसेस में पुष्टि करना शामिल है. अगर स्कीमा के उल्लंघन, अमान्य रेफ़रंस, साइक्लिक डिपेंडेंसी या अन्य समस्याओं की वजह से जनरेट नहीं हो पाता है, तो एपीआई गड़बड़ी की जानकारी वाली सूची दिखाता है.

एंडपॉइंट की जानकारी
क्वेरी पैरामीटर ignore_validation: boolean
ज़रूरी नहीं. अगर true, तो पुष्टि करने से जुड़ी गड़बड़ियों को अनदेखा करें और MetricsConfig दिखाएं.
अनुरोध का मुख्य हिस्सा अनुरोध के मुख्य हिस्से में, JSON फ़ॉर्मैट में मेट्रिक कॉन्फ़िगरेशन के अनुरोध की जानकारी होनी चाहिए.
सक्सेस रिस्पॉन्स जवाब के मुख्य हिस्से में, application/x-protobuf या text/x-protobuf फ़ॉर्मैट में MetricsConfig मैसेज होता है.
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 के लिए फ़ाइल डिस्क्रिप्टर दिखाता है.

एंडपॉइंट की जानकारी
अनुरोध का मुख्य हिस्सा अनुरोध के मुख्य हिस्से में, application/x-protobuf या text/x-protobuf फ़ॉर्मैट में android.sdv.telemetry.MetricsConfig मैसेज होना चाहिए.
सक्सेस रिस्पॉन्स जवाब के मुख्य हिस्से में, application/x-protobuf या text/x-protobuf फ़ॉर्मैट में google.protobuf.FileDescriptorSet मैसेज होता है.
उदाहरण
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 दिखाएं.
अनुरोध का मुख्य हिस्सा अनुरोध के मुख्य हिस्से में, application/x-protobuf या text/x-protobuf फ़ॉर्मैट में android.sdv.telemetry.MetricsConfig मैसेज होना चाहिए.
सक्सेस रिस्पॉन्स जवाब के मुख्य हिस्से में एक खाली ऑब्जेक्ट (डिफ़ॉल्ट) या 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 स्ट्रिंग और vehicle_signals के लिए base64 कोड में बदला गया FileDescriptorSet होना चाहिए.
{
  "version": "string",
  "vehicle_signals": "string"
}
सक्सेस रिस्पॉन्स अगर अनुरोध पूरा हो जाता है, तो एपीआई, जोड़े गए या अपडेट किए गए कैटलॉग के वर्शन के साथ application/json दिखाता है:
{"version": "string"}
उदाहरण vehicle_signals फ़ील्ड के लिए, base64 की मदद से कोड में बदले गए FileDescriptorSet को जनरेट करने के निर्देशों के लिए, वाहन के सिग्नल कैटलॉग देखें.
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/

वाहन के सिग्नल कैटलॉग के सभी मेटाडेटा की सूची बनाएं.

एंडपॉइंट की जानकारी
सक्सेस रिस्पॉन्स अगर अनुरोध सही से काम करता है, तो एपीआई, कैटलॉग वर्शन की सूची वाला application/json दिखाता है:
{"versions": [{"version": "string"}]}
उदाहरण
curl "$SERVICE_URL/api/v1/vs/"
      

DELETE /api/v1/vs/{version}

वाहन के सिग्नल के कैटलॉग को मिटाता है.

एंडपॉइंट की जानकारी
पाथ पैरामीटर version: string
ज़रूरी है. मिटाने के लिए, वाहन के सिग्नल कैटलॉग का आइडेंटिफ़ायर. यह POST अनुरोध के version फ़ील्ड में दिया गया है.
सक्सेस रिस्पॉन्स अगर अनुरोध पूरा हो जाता है, तो एपीआई, मिटाए गए कैटलॉग के वर्शन के साथ 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
एचटीटीपी स्टेटस कोड (उदाहरण के लिए, 400, 404 या 500).
status string
Google RPC का कैननिकल स्टेटस कोड (उदाहरण के लिए, INVALID_ARGUMENT, NOT_FOUND या INTERNAL).
message string
डेवलपर को दिखने वाला गड़बड़ी का मैसेज, जो अंग्रेज़ी में होना चाहिए.
details Array<object>
ऑब्जेक्ट का एक कलेक्शन जिसमें गड़बड़ी की ज़्यादा जानकारी होती है. इसकी पहचान @type सदस्य से होती है.