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
POST /api/v1/generate_metrics_config: utwórz instancjęMetricsConfigna podstawie szczegółów żądania konfiguracji danych.POST /api/v1/get_file_descriptor_set: zwraca deskryptory plików dla danegoMetricsConfigna potrzeby dekodowania raportów.POST /api/v1/validate_metrics_config: sprawdza przekazaneMetricsConfigi zwraca listę błędów weryfikacji.
Katalogi sygnałów pojazdów
POST /api/v1/vs/: tworzenie nowego lub aktualizowanie istniejącego katalogu sygnałów pojazdu.GET /api/v1/vs/: wyświetl wszystkie metadane katalogu sygnałów pojazdu.DELETE /api/v1/vs/{version}: usuwa określony katalog sygnałów pojazdu.
Stan usługi
GET /health: sprawdź 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: booleanOpcjonalnie. 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: booleanOpcjonalnie. 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: stringWymagane. 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 |
int32Kod stanu HTTP (np. 400, 404 lub 500). |
status |
stringKanoniczny kod stanu RPC Google (np. INVALID_ARGUMENT, NOT_FOUND lub INTERNAL). |
message |
stringKomunikat 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. |