הפניית API

בדף הזה מופיעים מאמרי עזרה של נקודות קצה ל-API של Metrics Configuration Generator (MCG).

סקירה כללית של נקודות הקצה (endpoint)

בקטעים הבאים מפורטות נקודות הקצה ל-API שזמינות ב-MCG.

הגדרת המדדים

קטלוגים של אותות רכב

  • POST /api/v2/vs/: יצירת קטלוג חדש של אותות רכב או עדכון של קטלוג קיים.
  • GET /api/v2/vs/: הצגת רשימה של כל המטא-נתונים של Vehicle Signal Catalog.
  • ‫DELETE /api/v2/vs/{version}: מחיקת קטלוג האותות שצוין לרכב.

סטטוס השירות

  • ‫GET /health: בדיקת תקינות השירות.

סוגי תוכן של Protobuf

כמה נקודות קצה ל-API מקבלות או מחזירות נתונים בפורמט של מאגר אחסון לפרוטוקולים (protobuf). יש שני סוגי תוכן:

  • ‫application/x-protobuf: מציין נתוני protobuf בפורמט wire בינארי. הפורמט הזה יעיל לתקשורת בין מכונות, אבל הוא לא קריא לאנשים.
  • ‫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:

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)"

הגדרת המדדים

בקטע הזה מתוארות נקודות קצה (endpoints) ליצירה ולאימות של הגדרות מדדים.

POST /api/v2/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/v2/generate_metrics_config"
      

POST /api/v2/get_file_descriptor_set

החזרת תיאורי קבצים של MetricsConfig נתון לצורך פענוח דוחות.

הפרטים של נקודת הקצה
גוף הבקשה גוף הבקשה צריך להכיל הודעת google.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/v2/get_file_descriptor_set"
      

POST /api/v2/validate_metrics_config

מאמת את ה-MetricsConfig שסופק ומחזיר רשימה של שגיאות אימות.

הפרטים של נקודת הקצה
פרמטרים של שאילתה ‫return_config: boolean
אופציונלי. אם הערך הוא true, הפקודה תחזיר MetricsConfig אחרי אימות מוצלח.
גוף הבקשה גוף הבקשה צריך להכיל הודעת google.sdv.telemetry.MetricsConfig בפורמט application/x-protobuf או text/x-protobuf.
תגובה על הצלחה גוף התשובה מכיל אובייקט ריק (ברירת המחדל) או MetricsConfig (אם return_config הוא true).
הכותרת Metrics-Config-Size מכילה את גודל ההגדרה בבייטים.
דוגמה
curl -H "Content-Type: application/x-protobuf" \
  -H "Accept: application/json" \
  --data-binary @PATH_TO_METRICS_CONFIG_PB \
  "$SERVICE_URL/api/v2/validate_metrics_config"
      

קטלוגים של אותות רכב

בקטע הזה מתוארות נקודות קצה לניהול קטלוגים של אותות רכב.

POST /api/v2/vs/‎

יצירה של קטלוג אותות רכב חדש או עדכון של קטלוג קיים.

הפרטים של נקודת הקצה
גוף הבקשה גוף הבקשה חייב להכיל אובייקט JSON עם מחרוזת version ו-FileDescriptorSet בקידוד base64 בשביל vehicle_signals.
{
  "version": "string",
  "vehicle_signals": "string"
}
תגובה על הצלחה אם הפעולה מצליחה, ה-API מחזיר את הערך application/json עם גרסת הקטלוג שנוספה או עודכנה:
{"version": "string"}
דוגמה הוראות ליצירת FileDescriptorSet בקידוד Base64 לשדה vehicle_signals מפורטות במאמר קטלוגים של אותות רכב.
curl -H "Content-Type: application/json" \
  --data-binary @- "$SERVICE_URL/api/v2/vs/" << EOF
{
  "version": "v1.0",
  "vehicle_signals": "VEHICLE_SIGNALS_BASE64"
}
EOF
      

GET /api/v2/vs/‎

להציג רשימה של כל המטא-נתונים של Vehicle Signal Catalog.

הפרטים של נקודת הקצה
תגובה על הצלחה אם הפעולה מצליחה, ה-API מחזיר את הערך application/json שמכיל רשימה של גרסאות הקטלוג:
{"versions": [{"version": "string"}]}
דוגמה
curl "$SERVICE_URL/api/v2/vs/"
      

DELETE /api/v2/vs/{version}

מחיקת קטלוג האותות של הרכב שצוין.

הפרטים של נקודת הקצה
פרמטרים של הנתיב ‫version: string
חובה. המזהה של קטלוג האותות של הרכב שרוצים למחוק, כפי שצוין בשדה version של בקשת ה-POST.
תגובה על הצלחה אם הפעולה מצליחה, ה-API מחזיר את הערך application/json עם גרסת הקטלוג שנמחקה:
{"version": "string"}
דוגמה
curl --request DELETE "$SERVICE_URL/api/v2/vs/v1.0"
      

סטטוס השירות

בקטע הזה מתוארות נקודות קצה (endpoints) לבדיקת Service Health.

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.