בדף הזה מרוכזים מאמרי העזרה של נקודות הקצה של Metrics Configuration Generator (MCG) API.
סקירה כללית של נקודות קצה
בקטעים הבאים מפורטות נקודות הקצה של ה-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: בדיקת תקינות השירות.
סוגי תוכן של Protobuf
כמה נקודות קצה ל-API מקבלות או מחזירות נתונים בפורמט של מאגר אחסון לפרוטוקולים (protobuf). משתמשים בשני סוגי תוכן:
-
application/x-protobuf: מציין נתוני protobuf בפורמט הבינארי שלהם. הפורמט הזה יעיל לתקשורת בין מכונות, אבל הוא לא קריא לבני אדם. -
text/x-protobuf: מציין נתוני protobuf בפורמט טקסט, שקריא לבני אדם ושימושי לניפוי באגים או לבדיקה ידנית.
כשנקודת קצה תומכת בכמה פורמטים של protobuf לבקשה או לתגובה, צריך להשתמש בכותרת Content-Type כדי לציין את הפורמט של נתוני הבקשה, ובכותרת Accept כדי לציין את הפורמט שנבחר של נתוני התגובה. לדוגמה:
-H 'Content-Type: application/x-protobuf'-H 'Accept: text/x-protobuf'
שליחת קריאה ל-API
בדוגמאות שבדף הזה נעשה שימוש ב-curl כדי לקרוא ל-API בארכיטקטורת REST, והן מניחות שהגדרתם את משתנה הסביבה SERVICE_URL כך שיפנה למארח שבו MCG פרוס. כשמריצים באופן מקומי, בדרך כלל זה הנתיב http://localhost:8005.
כדי לטרגט מופע מרוחק של Cloud Run, מגדירים את SERVICE_URL באמצעות gcloud. לאחר מכן, מוסיפים כותרת הרשאה עם אסימון זהות של OpenID Connect (OIDC) לפקודה curl:
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)"
הגדרת מדדים
בקטע הזה מתוארות נקודות קצה (endpoints) ליצירה ולאימות של הגדרות מדדים.
POST /api/v1/generate_metrics_config
יוצרים מכונת MetricsConfig מפרטי בקשה להגדרת מדדים.
התהליך הזה כולל אימות, ואם היצירה נכשלת בגלל הפרות של הסכימה, הפניות פסולות, יחסי תלות מחזוריים או בעיות אחרות, ה-API מחזיר רשימה של פרטי שגיאה.
| פרטים על נקודת הקצה | |
|---|---|
| פרמטרים של שאילתה |
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" |
קטלוגים של אותות לרכב
בקטע הזה מתוארות נקודות קצה (endpoints) לניהול קטלוגים של אותות רכב.
POST /api/v1/vs/
יצירה של קטלוג חדש של אותות רכב או עדכון של קטלוג קיים.
| פרטים על נקודת הקצה | |
|---|---|
| גוף הבקשה |
גוף הבקשה חייב להכיל אובייקט JSON עם מחרוזת version ו-FileDescriptorSet בקידוד base64 בשביל vehicle_signals.
{ "version": "string", "vehicle_signals": "string" } |
| תגובת הצלחה |
אם הפעולה בוצעה ללא שגיאות, ה-API יחזיר את קוד הסטטוס application/json עם הגרסה של הקטלוג שנוספה או עודכנה:
{"version": "string"} |
| דוגמה |
הוראות ליצירת FileDescriptorSet בקידוד Base64 בשדה vehicle_signals מופיעות במאמר Vehicle Signal Catalogs.
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.
| פרטים על נקודת הקצה | |
|---|---|
| תגובת הצלחה |
אם הפעולה מצליחה, ה-API מחזיר application/json שמכיל רשימה של גרסאות הקטלוג:
{"versions": [{"version": "string"}]} |
| דוגמה |
curl "$SERVICE_URL/api/v1/vs/" |
DELETE /api/v1/vs/{version}
מוחקים את קטלוג אותות הרכב שצוין.
| פרטים על נקודת הקצה | |
|---|---|
| פרמטרים של נתיבים |
version: stringשדה חובה. המזהה של קטלוג אותות הרכב שרוצים למחוק, כפי שמופיע בשדה version של בקשת ה-POST.
|
| תגובת הצלחה |
אם הפעולה בוצעה בהצלחה, ה-API מחזיר application/json עם הגרסה של הקטלוג שנמחקה:
{"version": "string"} |
| דוגמה |
curl --request DELETE "$SERVICE_URL/api/v1/vs/v1.0" |
סטטוס השירות
בקטע הזה מתוארות נקודות קצה (endpoints) לבדיקת תקינות השירות.
GET /health
בודקים את תקינות השירות.
| פרטים על נקודת הקצה | |
|---|---|
| תגובת הצלחה |
אם השירות תקין, הוא מחזיר קוד סטטוס 200 OK.
|
| דוגמה |
curl "$SERVICE_URL/health" |
תגובות שגיאה
כשקריאה ל-API מובילה לשגיאה (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 שלהם. |