Dokumentacja API

Ta strona zawiera dokumentację referencyjną punktów końcowych interfejsu API generatora konfiguracji wskaźników (MCG).

Omówienie punktów końcowych

W sekcjach poniżej znajdziesz szczegółowe informacje o punktach końcowych interfejsu API dostępnych w MCG.

Konfiguracja wskaźników

Katalogi sygnałów pojazdów

Stan usługi

Typy treści Protobuf

Kilka punktów końcowych interfejsu API akceptuje lub zwraca dane w formacie bufora protokołu (protobuf). Używane są 2 typy treści:

  • application/x-protobuf: wskazuje dane protobuf w binarnym formacie przesyłania. Ten format jest wydajny w komunikacji między urządzeniami, ale nie jest czytelny dla człowieka.
  • text/x-protobuf: wskazuje dane protobuf w formacie tekstowym, który jest czytelny dla człowieka i przydatny do debugowania lub ręcznego sprawdzania.

Jeśli punkt końcowy obsługuje wiele formatów protobuf dla żądania lub odpowiedzi, użyj nagłówka Content-Type, aby określić format danych żądania, oraz nagłówka Accept, aby określić wybrany format danych odpowiedzi. Przykład:

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

Wywoływanie interfejsu API

Przykłady na tej stronie używają curl do wywoływania interfejsu API REST i zakładają, że zmienna środowiskowa SERVICE_URL została ustawiona tak, aby odwoływać się do hosta, na którym wdrożono MCG. W przypadku uruchamiania lokalnego jest to zwykle http://localhost:8005.

Aby kierować żądania do zdalnej instancji Cloud Run, ustaw SERVICE_URL za pomocą gcloud. Następnie do polecenia curl dołącz nagłówek autoryzacji z tokenem tożsamości 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)"

Konfiguracja wskaźników

W tej sekcji opisujemy punkty końcowe służące do generowania i weryfikowania konfiguracji danych.

POST /api/v1/generate_metrics_config

Utwórz MetricsConfig na podstawie szczegółów żądania konfiguracji wskaźników. Ten proces obejmuje weryfikację. Jeśli generowanie się nie powiedzie z powodu naruszenia schematu, nieprawidłowych odwołań, zależności cyklicznych lub innych problemów, interfejs API zwraca listę szczegółów błędu.

Szczegóły punktu końcowego
Parametry zapytania ignore_validation: boolean
Opcjonalnie. Jeśli true, zignoruj błędy weryfikacji i zwróć MetricsConfig.
Treść żądania Treść żądania musi zawierać szczegóły żądania konfiguracji danych w formacie JSON.
Odpowiedź o sukcesie Treść odpowiedzi zawiera komunikat MetricsConfig w formacie application/x-protobuf lub text/x-protobuf.
Nagłówek Metrics-Config-Size zawiera rozmiar konfiguracji w bajtach.
Przykład
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

Zwraca deskryptory plików dla danego MetricsConfig na potrzeby dekodowania raportów.

Szczegóły punktu końcowego
Treść żądania Treść żądania musi zawierać wiadomość android.sdv.telemetry.MetricsConfig w formacie application/x-protobuf lub text/x-protobuf.
Odpowiedź o sukcesie Treść odpowiedzi zawiera komunikat google.protobuf.FileDescriptorSet w formacie application/x-protobuf lub text/x-protobuf.
Przykład
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

Sprawdza podany MetricsConfig i zwraca listę błędów weryfikacji.

Szczegóły punktu końcowego
Parametry zapytania return_config: boolean
Opcjonalnie. Jeśli true, po pomyślnej weryfikacji zwróć MetricsConfig.
Treść żądania Treść żądania musi zawierać wiadomość android.sdv.telemetry.MetricsConfig w formacie application/x-protobuf lub text/x-protobuf.
Odpowiedź o sukcesie Treść odpowiedzi zawiera pusty obiekt (domyślnie) lub MetricsConfig (jeśli return_config ma wartość true).
Nagłówek Metrics-Config-Size zawiera rozmiar konfiguracji w bajtach.
Przykład
curl -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  --data-binary @PATH_TO_METRICS_CONFIG_JSON \
  "$SERVICE_URL/api/v1/validate_metrics_config"
      

Katalogi sygnałów pojazdów

W tej sekcji opisujemy punkty końcowe do zarządzania katalogami sygnałów pojazdów.

POST /api/v1/vs/

Tworzenie nowego lub aktualizowanie istniejącego katalogu sygnałów pojazdu.

Szczegóły punktu końcowego
Treść żądania Treść żądania musi zawierać obiekt JSON z ciągiem znaków version i zakodowanym w formacie Base64 ciągiem znaków FileDescriptorSet dla vehicle_signals.
{
  "version": "string",
  "vehicle_signals": "string"
}
Odpowiedź o sukcesie Jeśli operacja się powiedzie, interfejs API zwróci application/json z wersją dodanego lub zaktualizowanego katalogu:
{"version": "string"}
Przykład Instrukcje generowania kodu FileDescriptorSet zakodowanego w base64 dla pola vehicle_signals znajdziesz w katalogach sygnałów pojazdu.
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/

Wyświetl wszystkie metadane katalogu sygnałów pojazdu.

Szczegóły punktu końcowego
Odpowiedź o sukcesie Jeśli operacja się uda, interfejs API zwróci application/json zawierający listę wersji katalogu:
{"versions": [{"version": "string"}]}
Przykład
curl "$SERVICE_URL/api/v1/vs/"
      

DELETE /api/v1/vs/{version}

Usuń określony katalog sygnałów pojazdu.

Szczegóły punktu końcowego
Parametry ścieżki version: string
Wymagane. Identyfikator katalogu sygnałów pojazdu do usunięcia, podany w polu version żądania POST.
Odpowiedź o sukcesie Jeśli operacja się uda, interfejs API zwróci application/json z wersją usuniętego katalogu:
{"version": "string"}
Przykład
curl --request DELETE "$SERVICE_URL/api/v1/vs/v1.0"
      

Stan usługi

Ta sekcja zawiera opis punktów końcowych do sprawdzania stanu usługi.

GET /health

Sprawdź stan usługi.

Szczegóły punktu końcowego
Odpowiedź o sukcesie Jeśli usługa działa prawidłowo, zwraca kod stanu 200 OK.
Przykład
curl "$SERVICE_URL/health"
      

Odpowiedzi na błędy

Gdy wywołanie interfejsu API spowoduje błąd (HTTP status 4xx lub 5xx), treść odpowiedzi zawiera obiekt błędu o tej strukturze:

{
  "error": {
    "code": 400,
    "status": "INVALID_ARGUMENT",
    "message": "Request validation failed",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.BadRequest",
        "fieldViolations": [
          {
            "field": "fieldName",
            "description": "error description"
          }
        ]
      }
    ]
  }
}
Pola błędów
code int32
Kod stanu HTTP (np. 400, 404 lub 500).
status string
Kanoniczny kod stanu RPC Google (np. INVALID_ARGUMENT, NOT_FOUND lub INTERNAL).
message string
Komunikat o błędzie widoczny dla programisty, który powinien być w języku angielskim.
details Array<object>
Tablica obiektów zawierających dalsze szczegóły błędu, zidentyfikowane przez element @type.