API-Referenz

Auf dieser Seite finden Sie die Referenzdokumentation für die API-Endpunkte des Metrics Configuration Generator (MCG).

Übersicht über Endpunkte

In den folgenden Abschnitten werden die in MCG verfügbaren API-Endpunkte beschrieben.

Messwertkonfiguration

Fahrzeugsignalkataloge

Dienststatus

Protobuf-Inhaltstypen

Mehrere API-Endpunkte akzeptieren oder geben Daten im Protokollzwischenspeicherformat (protobuf) zurück. Es werden zwei Inhaltstypen verwendet:

  • application/x-protobuf: Gibt Protobuf-Daten im binären Wire-Format an. Dieses Format ist effizient für die Kommunikation zwischen Maschinen, aber nicht für Menschen lesbar.
  • text/x-protobuf: Gibt Protobuf-Daten im Textformat an, das für Menschen lesbar und für das Debugging oder die manuelle Überprüfung nützlich ist.

Wenn ein Endpunkt mehrere Protobuf-Formate für eine Anfrage oder Antwort unterstützt, verwenden Sie den Content-Type-Header, um das Format der Anfragedaten anzugeben, und den Accept-Header, um das ausgewählte Format der Antwortdaten anzugeben. Beispiel:

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

API aufrufen

In den Beispielen auf dieser Seite wird curl zum Aufrufen der REST API verwendet. Außerdem wird davon ausgegangen, dass Sie die Umgebungsvariable SERVICE_URL so festgelegt haben, dass sie auf den Host verweist, auf dem MCG bereitgestellt wird. Bei der lokalen Ausführung ist dies in der Regel http://localhost:8005.

Wenn Sie eine Remote-Cloud Run-Instanz als Ziel verwenden möchten, legen Sie SERVICE_URL mit gcloud fest. Hängen Sie dann einen Autorisierungsheader mit einem OpenID Connect-Identitätstoken (OIDC) an den curl-Befehl an:

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

Messwertkonfiguration

In diesem Abschnitt werden Endpunkte zum Generieren und Validieren von Messwertkonfigurationen beschrieben.

POST /api/v1/generate_metrics_config

Erstellen Sie eine MetricsConfig-Instanz aus den Details der Anfrage zur Messwertkonfiguration. Dieser Prozess umfasst die Validierung. Wenn die Generierung aufgrund von Schemas, ungültigen Referenzen, zyklischen Abhängigkeiten oder anderen Problemen fehlschlägt, gibt die API eine Liste mit Fehlerdetails zurück.

Endpunktdetails
Suchparameter ignore_validation: boolean
Optional. Wenn true, werden Validierungsfehler ignoriert und MetricsConfig zurückgegeben.
Anfragetext Der Anfragetext muss Details zur Konfiguration von Messwerten im JSON-Format enthalten.
Erfolgsantwort Der Antworttext enthält eine MetricsConfig-Nachricht im application/x-protobuf- oder text/x-protobuf-Format.
Der Metrics-Config-Size-Header enthält die Konfigurationsgröße in Byte.
Beispiel
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

Gibt Dateideskriptoren für eine bestimmte MetricsConfig zum Decodieren von Berichten zurück.

Endpunktdetails
Anfragetext Der Anfragetext muss eine android.sdv.telemetry.MetricsConfig-Nachricht im Format application/x-protobuf oder text/x-protobuf enthalten.
Erfolgsantwort Der Antworttext enthält eine google.protobuf.FileDescriptorSet-Nachricht im application/x-protobuf- oder text/x-protobuf-Format.
Beispiel
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

Validiert die angegebene MetricsConfig und gibt eine Liste aller Validierungsfehler zurück.

Endpunktdetails
Suchparameter return_config: boolean
Optional. Wenn true, wird bei erfolgreicher Validierung MetricsConfig zurückgegeben.
Anfragetext Der Anfragetext muss eine android.sdv.telemetry.MetricsConfig-Nachricht im Format application/x-protobuf oder text/x-protobuf enthalten.
Erfolgsantwort Der Antworttext enthält ein leeres Objekt (Standard) oder MetricsConfig (wenn return_config gleich true ist).
Der Metrics-Config-Size-Header enthält die Konfigurationsgröße in Byte.
Beispiel
curl -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  --data-binary @PATH_TO_METRICS_CONFIG_JSON \
  "$SERVICE_URL/api/v1/validate_metrics_config"
      

Fahrzeugsignalkataloge

In diesem Abschnitt werden Endpunkte zum Verwalten von Fahrzeugsignalkatalogen beschrieben.

POST /api/v1/vs/

Erstellen Sie einen neuen oder aktualisieren Sie einen vorhandenen Fahrzeugsignalkatalog.

Endpunktdetails
Anfragetext Der Anfragetext muss ein JSON-Objekt mit einem version-String und einem base64-codierten FileDescriptorSet für vehicle_signals enthalten.
{
  "version": "string",
  "vehicle_signals": "string"
}
Erfolgsantwort Bei Erfolg gibt die API application/json mit der Version des Katalogs zurück, der hinzugefügt oder aktualisiert wurde:
{"version": "string"}
Beispiel Eine Anleitung zum Generieren des Base64-codierten FileDescriptorSet für das Feld vehicle_signals finden Sie unter Fahrzeugsignalkataloge.
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/

Alle Metadaten des Vehicle Signal Catalog auflisten.

Endpunktdetails
Erfolgsantwort Bei Erfolg gibt die API application/json mit einer Liste von Katalogversionen zurück:
{"versions": [{"version": "string"}]}
Beispiel
curl "$SERVICE_URL/api/v1/vs/"
      

DELETE /api/v1/vs/{version}

Löscht den angegebenen Fahrzeugsignalkatalog.

Endpunktdetails
Pfadparameter version: string
Erforderlich. Die Kennung des zu löschenden Fahrzeugsignal-Katalogs, wie im Feld version der POST-Anfrage angegeben.
Erfolgsantwort Bei Erfolg gibt die API application/json mit der Version des gelöschten Katalogs zurück:
{"version": "string"}
Beispiel
curl --request DELETE "$SERVICE_URL/api/v1/vs/v1.0"
      

Dienststatus

In diesem Abschnitt werden Endpunkte zum Prüfen des Dienststatus beschrieben.

GET /health

Prüfen Sie den Status des Dienstes.

Endpunktdetails
Erfolgsantwort Wenn der Dienst fehlerfrei ist, wird der Statuscode 200 OK zurückgegeben.
Beispiel
curl "$SERVICE_URL/health"
      

Fehlerantworten

Wenn ein API-Aufruf zu einem Fehler (HTTP status 4xx oder 5xx) führt, enthält der Antworttext ein Fehlerobjekt mit der folgenden Struktur:

{
  "error": {
    "code": 400,
    "status": "INVALID_ARGUMENT",
    "message": "Request validation failed",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.BadRequest",
        "fieldViolations": [
          {
            "field": "fieldName",
            "description": "error description"
          }
        ]
      }
    ]
  }
}
Fehlerfelder
code int32
Der HTTP-Statuscode (z. B. 400, 404 oder 500).
status string
Der kanonische Statuscode für Google RPC (z. B. INVALID_ARGUMENT, NOT_FOUND oder INTERNAL).
message string
Eine an Entwickler gerichtete Fehlermeldung auf Englisch.
details Array<object>
Ein Array von Objekten mit weiteren Fehlerdetails, die durch das @type-Element identifiziert werden.