Referencia de la API

En esta página, se proporciona documentación de referencia para los endpoints de API del generador de configuración de métricas (MCG).

Descripción general de Endpoints

En las siguientes secciones, se detallan los endpoints de la API disponibles en MCG.

Configuración de métricas

Catálogos de indicadores de vehículos

Estado del servicio

Tipos de contenido de Protobuf

Varios endpoints de API aceptan o devuelven datos en formato de búfer de protocolo (protobuf). Se usan dos tipos de contenido:

  • application/x-protobuf: Indica los datos de protobuf en su formato de transmisión binario. Este formato es eficiente para la comunicación de máquina a máquina, pero no es legible por humanos.
  • text/x-protobuf: Indica los datos de protobuf en su formato de texto, que es legible por humanos y útil para la depuración o la inspección manual.

Cuando un extremo admite varios formatos de protobuf para una solicitud o respuesta, usa el encabezado Content-Type para especificar el formato de los datos de la solicitud y el encabezado Accept para especificar el formato seleccionado de los datos de la respuesta. Por ejemplo:

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

Llama a la API

En los ejemplos de esta página, se usa curl para llamar a la API de REST y se supone que configuraste la variable de entorno SERVICE_URL para hacer referencia al host en el que se implementa MCG. Cuando se ejecuta de forma local, suele ser http://localhost:8005.

Para orientar una instancia remota de Cloud Run, configura SERVICE_URL con gcloud:

SERVICE_URL=$(gcloud run services describe mcg-service \
  --region=GCP_REGION \
  --format='value(status.url)')

Cuando llames a extremos remotos de Cloud Run, agrega el siguiente encabezado de autorización a tus comandos de curl:

-H "Authorization: Bearer $(gcloud auth print-identity-token)"

Configuración de métricas

En esta sección, se describen los extremos para generar y validar parámetros de configuración de métricas.

POST /api/v2/generate_metrics_config

Crea una instancia de MetricsConfig a partir de los detalles de la solicitud de configuración de métricas. Este proceso incluye la validación y, si la generación falla debido a incumplimientos del esquema, referencias no válidas, dependencias cíclicas o cualquier otro problema, la API devuelve una lista de detalles del error.

Detalles del extremo
Parámetros de consulta ignore_validation: boolean
Opcional. Si es true, ignora los errores de validación y devuelve MetricsConfig.
Cuerpo de la solicitud El cuerpo de la solicitud debe contener los detalles de la solicitud de configuración de métricas en formato JSON.
Respuesta exitosa El cuerpo de la respuesta contiene un mensaje MetricsConfig en formato application/x-protobuf o text/x-protobuf.
El encabezado Metrics-Config-Size contiene el tamaño de la configuración en bytes.
Ejemplo
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

Muestra descriptores de archivos para un MetricsConfig determinado para decodificar informes.

Detalles del extremo
Cuerpo de la solicitud El cuerpo de la solicitud debe contener un mensaje google.sdv.telemetry.MetricsConfig en formato application/x-protobuf o text/x-protobuf.
Respuesta exitosa El cuerpo de la respuesta contiene un mensaje google.protobuf.FileDescriptorSet en formato application/x-protobuf o text/x-protobuf.
Ejemplo
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

Valida el MetricsConfig proporcionado y devuelve una lista de los errores de validación.

Detalles del extremo
Parámetros de consulta return_config: boolean
Opcional. Si es true, devuelve MetricsConfig cuando la validación se realice correctamente.
Cuerpo de la solicitud El cuerpo de la solicitud debe contener un mensaje google.sdv.telemetry.MetricsConfig en formato application/x-protobuf o text/x-protobuf.
Respuesta exitosa El cuerpo de la respuesta contiene un objeto vacío (predeterminado) o MetricsConfig (si return_config es true).
El encabezado Metrics-Config-Size contiene el tamaño de la configuración en bytes.
Ejemplo
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"
      

Catálogos de indicadores de vehículos

En esta sección, se describen los extremos para administrar los catálogos de indicadores de vehículos.

POST /api/v2/vs/

Crea un catálogo de indicadores de vehículos nuevo o actualiza uno existente.

Detalles del extremo
Cuerpo de la solicitud El cuerpo de la solicitud debe contener un objeto JSON con una cadena version y un FileDescriptorSet codificado en Base64 para vehicle_signals.
{
  "version": "string",
  "vehicle_signals": "string"
}
Respuesta exitosa Si se ejecuta de forma correcta, la API devuelve application/json con la versión del catálogo que se agregó o actualizó:
{"version": "string"}
Ejemplo Para obtener instrucciones sobre cómo generar el FileDescriptorSet codificado en Base64 para el campo vehicle_signals, consulta Catálogos de indicadores de vehículos.
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/

Enumera todos los metadatos del catálogo de indicadores de vehículos.

Detalles del extremo
Respuesta exitosa Si se ejecuta de forma correcta, la API devuelve application/json con una lista de versiones del catálogo:
{"versions": [{"version": "string"}]}
Ejemplo
curl "$SERVICE_URL/api/v2/vs/"
      

DELETE /api/v2/vs/{version}

Borra el catálogo de indicadores de vehículos especificado.

Detalles del extremo
Parámetros de ruta version: string
Obligatorio. Es el identificador del catálogo de indicadores del vehículo que se borrará, como se proporciona en el campo version de la solicitud POST.
Respuesta exitosa Si se ejecuta de forma correcta, la API devuelve application/json con la versión del catálogo que se borró:
{"version": "string"}
Ejemplo
curl --request DELETE "$SERVICE_URL/api/v2/vs/v1.0"
      

Estado del servicio

En esta sección, se describen los extremos para verificar el estado del servicio.

GET /health

Verifica el estado del servicio.

Detalles del extremo
Respuesta exitosa Si está en buen estado, el servicio devuelve un código de estado 200 OK.
Ejemplo
curl "$SERVICE_URL/health"
      

Respuestas de error

Cuando una llamada a la API genera un error (HTTP status 4xx o 5xx), el cuerpo de la respuesta contiene un objeto de error con la siguiente estructura:

{
  "error": {
    "code": 400,
    "status": "INVALID_ARGUMENT",
    "message": "Request validation failed",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.BadRequest",
        "fieldViolations": [
          {
            "field": "fieldName",
            "description": "error description"
          }
        ]
      }
    ]
  }
}
Campos de error
code int32
El código de estado HTTP (por ejemplo, 400, 404 o 500).
status string
Es el código de estado canónico de RPC de Google (por ejemplo, INVALID_ARGUMENT, NOT_FOUND o INTERNAL).
message string
Un mensaje de error dirigido al desarrollador, en inglés.
details Array<object>
Es un array de objetos que contiene más detalles del error, identificados por su miembro @type.