Tài liệu tham khảo API

Trang này cung cấp tài liệu tham khảo cho các điểm cuối API Trình tạo cấu hình chỉ số (MCG).

Tổng quan về điểm cuối

Các phần sau đây trình bày chi tiết về các điểm cuối API có trong MCG.

Cấu hình chỉ số

Danh mục tín hiệu xe

Trạng thái dịch vụ

  • GET /health: Kiểm tra tình trạng của dịch vụ.

Các loại nội dung Protobuf

Một số điểm cuối API chấp nhận hoặc trả về dữ liệu ở định dạng vùng đệm giao thức (protobuf). Có 2 loại nội dung được sử dụng:

  • application/x-protobuf: Cho biết dữ liệu protobuf ở định dạng nhị phân. Định dạng này hiệu quả cho việc giao tiếp giữa các máy nhưng không thể đọc được.
  • text/x-protobuf: Cho biết dữ liệu protobuf ở định dạng văn bản. Định dạng này con người có thể đọc được và hữu ích cho việc gỡ lỗi hoặc kiểm tra thủ công.

Khi một điểm cuối hỗ trợ nhiều định dạng protobuf cho một yêu cầu hoặc phản hồi, hãy sử dụng tiêu đề Content-Type để chỉ định định dạng của dữ liệu yêu cầu và tiêu đề Accept để chỉ định định dạng đã chọn của dữ liệu phản hồi. Ví dụ:

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

Gọi API

Các ví dụ trên trang này sử dụng curl để gọi API REST và giả định rằng bạn đã đặt biến môi trường SERVICE_URL để tham chiếu đến máy chủ nơi MCG được triển khai. Khi chạy cục bộ, thư mục này thường là http://localhost:8005.

Để nhắm đến một phiên bản Cloud Run từ xa, hãy đặt SERVICE_URL bằng cách sử dụng gcloud. Sau đó, hãy thêm một tiêu đề uỷ quyền có mã thông báo nhận dạng OpenID Connect (OIDC) vào lệnh curl:

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)"

Cấu hình chỉ số

Phần này mô tả các điểm cuối để tạo và xác thực cấu hình chỉ số.

POST /api/v1/generate_metrics_config

Tạo một thực thể MetricsConfig từ thông tin chi tiết về yêu cầu định cấu hình chỉ số. Quy trình này bao gồm cả việc xác thực. Nếu quá trình tạo không thành công do vi phạm giản đồ, tham chiếu không hợp lệ, các phần phụ thuộc theo chu kỳ hoặc các vấn đề khác, thì API sẽ trả về danh sách thông tin chi tiết về lỗi.

Thông tin chi tiết về điểm cuối
Tham số truy vấn ignore_validation: boolean
Không bắt buộc. Nếu true, bỏ qua lỗi xác thực và trả về MetricsConfig.
Nội dung yêu cầu Nội dung yêu cầu phải chứa thông tin chi tiết về yêu cầu cấu hình chỉ số ở định dạng JSON.
Phản hồi thành công Phần nội dung phản hồi chứa thông báo MetricsConfig ở định dạng application/x-protobuf hoặc text/x-protobuf.
Tiêu đề Metrics-Config-Size chứa kích thước cấu hình tính bằng byte.
Ví dụ
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

Trả về chỉ số mô tả tệp cho một MetricsConfig nhất định để giải mã báo cáo.

Thông tin chi tiết về thiết bị đầu cuối
Nội dung yêu cầu Nội dung yêu cầu phải chứa một thông báo android.sdv.telemetry.MetricsConfig ở định dạng application/x-protobuf hoặc text/x-protobuf.
Phản hồi thành công Phần nội dung phản hồi chứa thông báo google.protobuf.FileDescriptorSet ở định dạng application/x-protobuf hoặc text/x-protobuf.
Ví dụ
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

Xác thực MetricsConfig đã cung cấp, trả về danh sách mọi lỗi xác thực.

Thông tin chi tiết về điểm cuối
Tham số truy vấn return_config: boolean
Không bắt buộc. Nếu true, hãy trả về MetricsConfig sau khi xác thực thành công.
Nội dung yêu cầu Nội dung yêu cầu phải chứa một thông báo android.sdv.telemetry.MetricsConfig ở định dạng application/x-protobuf hoặc text/x-protobuf.
Phản hồi thành công Nội dung phản hồi chứa một đối tượng trống (mặc định) hoặc MetricsConfig (nếu return_configtrue).
Tiêu đề Metrics-Config-Size chứa kích thước cấu hình tính bằng byte.
Ví dụ
curl -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  --data-binary @PATH_TO_METRICS_CONFIG_JSON \
  "$SERVICE_URL/api/v1/validate_metrics_config"
      

Danh mục tín hiệu xe

Phần này mô tả các điểm cuối để quản lý Danh mục tín hiệu xe.

POST /api/v1/vs/

Tạo mới hoặc cập nhật Danh mục tín hiệu xe hiện có.

Thông tin chi tiết về điểm cuối
Nội dung yêu cầu Nội dung yêu cầu phải chứa một đối tượng JSON có chuỗi versionFileDescriptorSet được mã hoá base64 cho vehicle_signals.
{
  "version": "string",
  "vehicle_signals": "string"
}
Phản hồi thành công Nếu thành công, API sẽ trả về application/json cùng với phiên bản của danh mục đã được thêm hoặc cập nhật:
{"version": "string"}
Ví dụ Để biết hướng dẫn về cách tạo FileDescriptorSet được mã hoá base64 cho trường vehicle_signals, hãy xem Danh mục tín hiệu xe.
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/

Liệt kê tất cả siêu dữ liệu trong Vehicle Signal Catalog.

Thông tin chi tiết về điểm cuối
Phản hồi thành công Nếu thành công, API sẽ trả về application/json chứa danh sách các phiên bản danh mục:
{"versions": [{"version": "string"}]}
Ví dụ
curl "$SERVICE_URL/api/v1/vs/"
      

DELETE /api/v1/vs/{version}

Xoá Vehicle Signal Catalog được chỉ định.

Thông tin chi tiết về điểm cuối
Tham số đường dẫn version: string
Bắt buộc. Giá trị nhận dạng của Danh mục tín hiệu xe cần xoá, như được cung cấp trong trường version của yêu cầu POST.
Phản hồi thành công Nếu thành công, API sẽ trả về application/json cùng với phiên bản danh mục đã bị xoá:
{"version": "string"}
Ví dụ
curl --request DELETE "$SERVICE_URL/api/v1/vs/v1.0"
      

Trạng thái dịch vụ

Phần này mô tả các điểm cuối để kiểm tra tình trạng dịch vụ.

GET /health

Kiểm tra trạng thái của dịch vụ.

Thông tin chi tiết về điểm cuối
Phản hồi thành công Nếu hoạt động bình thường, dịch vụ sẽ trả về mã trạng thái 200 OK.
Ví dụ
curl "$SERVICE_URL/health"
      

Phản hồi lỗi

Khi một lệnh gọi API dẫn đến lỗi (HTTP status 4xx hoặc 5xx), phần nội dung phản hồi sẽ chứa một đối tượng lỗi có cấu trúc sau:

{
  "error": {
    "code": 400,
    "status": "INVALID_ARGUMENT",
    "message": "Request validation failed",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.BadRequest",
        "fieldViolations": [
          {
            "field": "fieldName",
            "description": "error description"
          }
        ]
      }
    ]
  }
}
Trường lỗi
code int32
Mã trạng thái HTTP (ví dụ: 400, 404 hoặc 500).
status string
Mã trạng thái chính tắc RPC của Google (ví dụ: INVALID_ARGUMENT, NOT_FOUND hoặc INTERNAL).
message string
Thông báo lỗi dành cho nhà phát triển bằng tiếng Anh.
details Array<object>
Một mảng các đối tượng chứa thêm thông tin chi tiết về lỗi, được xác định bằng thành phần @type.