Справочник по API

На этой странице представлена справочная документация по конечным точкам Metrics Configuration Generator (MCG) API.

Обзор конечных точек

В следующих разделах подробно описаны конечные точки 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 в двоичном формате. Этот формат удобен для межмашинного взаимодействия, но не предназначен для чтения человеком.
  • 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.