На этой странице представлена справочная документация по конечным точкам Metrics Configuration Generator (MCG) API.
Обзор конечных точек
В следующих разделах подробно описаны конечные точки API, доступные в MCG.
Настройка показателей
POST /api/v2/generate_metrics_config: создание экземпляраMetricsConfigна основе сведений о запросе конфигурации показателя.POST /api/v2/get_file_descriptor_set– возвращает дескрипторы файлов для заданногоMetricsConfig, чтобы декодировать отчеты.POST /api/v2/validate_metrics_config: проверяет переданный объектMetricsConfigи возвращает список ошибок.
Каталоги сигналов автомобиля
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 в двоичном формате. Этот формат удобен для межмашинного взаимодействия, но не предназначен для чтения человеком.text/x-protobuf– указывает на данные protobuf в текстовом формате, который удобен для чтения и полезен для отладки или ручной проверки.
Если конечная точка поддерживает несколько форматов protobuf для запроса или ответа, используйте заголовок Content-Type, чтобы указать формат данных запроса, и заголовок Accept, чтобы указать выбранный формат данных ответа. Пример:
-H 'Content-Type: application/x-protobuf'-H 'Accept: text/x-protobuf'
Вызов API
В примерах на этой странице для вызова REST API используется curl. Предполагается, что вы настроили переменную среды 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)"
Настройка показателей
В этом разделе описываются конечные точки для создания и проверки конфигураций показателей.
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 и закодированным по алгоритму Base64 значением FileDescriptorSet для vehicle_signals.
{ "version": "string", "vehicle_signals": "string" } |
| Ответ об успешном выполнении |
Если запрос выполнен успешно, API возвращает application/json с версией каталога, который был добавлен или обновлен:
{"version": "string"} |
| Пример |
Инструкции по созданию закодированного в base64 значения FileDescriptorSet для поля 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/
Получить список всех метаданных каталога сигналов транспортного средства.
| Сведения о конечной точке | |
|---|---|
| Ответ об успешном выполнении |
Если запрос выполнен успешно, 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" |
Состояние сервиса
В этом разделе описываются конечные точки для проверки работоспособности сервиса.
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. |