เอกสารอ้างอิง API

หน้านี้มีเอกสารอ้างอิงสำหรับปลายทาง API ของเครื่องมือสร้างการกำหนดค่าเมตริก (MCG)

ภาพรวมของปลายทาง

ส่วนต่อไปนี้จะแสดงรายละเอียดปลายทาง API ที่มีใน MCG

การกำหนดค่าเมตริก

  • POST /api/v1/generate_metrics_config: สร้างอินสแตนซ์ MetricsConfig จากรายละเอียดคำขอการกำหนดค่าเมตริก
  • POST /api/v1/get_file_descriptor_set: แสดงผลตัวอธิบายไฟล์สำหรับ MetricsConfig ที่ระบุเพื่อถอดรหัสรายงาน
  • POST /api/v1/validate_metrics_config: ตรวจสอบ MetricsConfig ที่ส่งมา โดยแสดงผลรายการข้อผิดพลาดในการตรวจสอบ

แคตตาล็อกสัญญาณยานพาหนะ

  • POST /api/v1/vs/: สร้างแคตตาล็อกสัญญาณยานพาหนะใหม่หรืออัปเดตแคตตาล็อกที่มีอยู่
  • GET /api/v1/vs/: แสดงข้อมูลเมตาทั้งหมดของแคตตาล็อกสัญญาณยานพาหนะ
  • DELETE /api/v1/vs/{version}: ลบแคตตาล็อกสัญญาณยานพาหนะที่ระบุ

สถานะบริการ

  • GET /health: ตรวจสอบสถานะของบริการ

ประเภทเนื้อหา Protobuf

ปลายทาง API หลายรายการยอมรับหรือแสดงผลข้อมูลในรูปแบบบัฟเฟอร์โปรโตคอล (Protobuf) โดยใช้ประเภทเนื้อหา 2 ประเภทดังนี้

  • application/x-protobuf: ระบุข้อมูล Protobuf ในรูปแบบไบนารี รูปแบบนี้มีประสิทธิภาพสำหรับการสื่อสารระหว่างเครื่องกับเครื่อง แต่ไม่สามารถอ่านได้
  • text/x-protobuf: ระบุข้อมูล Protobuf ในรูปแบบข้อความ ซึ่งสามารถอ่านได้และมีประโยชน์สำหรับการแก้ไขข้อบกพร่องหรือการตรวจสอบด้วยตนเอง

เมื่อปลายทางรองรับ Protobuf หลายรูปแบบสำหรับคำขอหรือการตอบกลับ ให้ใช้ส่วนหัว Content-Type เพื่อระบุรูปแบบข้อมูลคำขอ และส่วนหัว Accept เพื่อระบุรูปแบบข้อมูลการตอบกลับที่เลือก เช่น

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

เรียก API

ตัวอย่างในหน้านี้ใช้ curl สำหรับเรียก REST API และสมมติว่าคุณได้ตั้งค่าตัวแปรสภาพแวดล้อม SERVICE_URL เพื่ออ้างอิงโฮสต์ที่ติดตั้งใช้งาน MCG เมื่อเรียกใช้ในเครื่อง โดยปกติแล้ว URL จะเป็น http://localhost:8005

หากต้องการกำหนดเป้าหมายอินสแตนซ์ Cloud Run ระยะไกล ให้ตั้งค่า SERVICE_URL โดยใช้ gcloud จากนั้นแนบส่วนหัวการให้สิทธิ์ด้วยโทเค็นข้อมูลประจำตัว OpenID Connect (OIDC) ลงในคำสั่ง 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)"

การกำหนดค่าเมตริก

ส่วนนี้อธิบายปลายทางสำหรับการสร้างและตรวจสอบการกำหนดค่าเมตริก

POST /api/v1/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/v1/generate_metrics_config"
      

POST /api/v1/get_file_descriptor_set

แสดงผลตัวอธิบายไฟล์สำหรับ MetricsConfig ที่ระบุเพื่อถอดรหัสรายงาน

รายละเอียดปลายทาง
เนื้อความของคำขอ เนื้อความของคำขอต้องมีข้อความ android.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/v1/get_file_descriptor_set"
      

POST /api/v1/validate_metrics_config

ตรวจสอบ MetricsConfig ที่ระบุ โดยแสดงผลรายการข้อผิดพลาดในการตรวจสอบ

รายละเอียดปลายทาง
พารามิเตอร์การค้นหา return_config: boolean
ไม่บังคับ หากเป็น true ให้แสดงผล MetricsConfig เมื่อตรวจสอบความถูกต้องสำเร็จ
เนื้อความของคำขอ เนื้อความของคำขอต้องมีข้อความ android.sdv.telemetry.MetricsConfig ในรูปแบบ application/x-protobuf หรือ text/x-protobuf
การตอบกลับที่สำเร็จ เนื้อความของการตอบกลับจะมีออบเจ็กต์ว่าง (ค่าเริ่มต้น) หรือ MetricsConfig (หาก return_config เป็น true)
ส่วนหัว Metrics-Config-Size จะมีขนาดการกำหนดค่าในหน่วยไบต์
ตัวอย่าง
curl -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  --data-binary @PATH_TO_METRICS_CONFIG_JSON \
  "$SERVICE_URL/api/v1/validate_metrics_config"
      

แคตตาล็อกสัญญาณยานพาหนะ

ส่วนนี้อธิบายปลายทางสำหรับการจัดการแคตตาล็อกสัญญาณยานพาหนะ

POST /api/v1/vs/

สร้างแคตตาล็อกสัญญาณยานพาหนะใหม่หรืออัปเดตแคตตาล็อกที่มีอยู่

รายละเอียดปลายทาง
เนื้อความของคำขอ เนื้อความของคำขอต้องมีออบเจ็กต์ JSON ที่มีสตริง version และ FileDescriptorSet ที่เข้ารหัสแบบ Base64 สำหรับ vehicle_signals
{
  "version": "string",
  "vehicle_signals": "string"
}
การตอบกลับที่สำเร็จ หากทำสำเร็จ API จะแสดงผล application/json พร้อมเวอร์ชันของแคตตาล็อกที่เพิ่มหรืออัปเดต
{"version": "string"}
ตัวอย่าง ดูวิธีการสร้าง FileDescriptorSet ที่เข้ารหัสแบบ Base64 สำหรับช่อง vehicle_signals ได้ที่ แคตตาล็อกสัญญาณยานพาหนะ
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/

แสดงข้อมูลเมตาทั้งหมดของแคตตาล็อกสัญญาณยานพาหนะ

รายละเอียดปลายทาง
การตอบกลับที่สำเร็จ หากทำสำเร็จ API จะแสดงผล application/json ที่มีรายการเวอร์ชันแคตตาล็อก
{"versions": [{"version": "string"}]}
ตัวอย่าง
curl "$SERVICE_URL/api/v1/vs/"
      

DELETE /api/v1/vs/{version}

ลบแคตตาล็อกสัญญาณยานพาหนะที่ระบุ

รายละเอียดปลายทาง
พารามิเตอร์เส้นทาง version: string
ต้องระบุ ตัวระบุของแคตตาล็อกสัญญาณยานพาหนะที่จะลบ ซึ่งระบุไว้ในช่อง version ของคำขอ POST
การตอบกลับที่สำเร็จ หากทำสำเร็จ API จะแสดงผล application/json พร้อมเวอร์ชันของแคตตาล็อกที่ลบ
{"version": "string"}
ตัวอย่าง
curl --request DELETE "$SERVICE_URL/api/v1/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
รหัสสถานะ Canonical ของ Google RPC (เช่น INVALID_ARGUMENT, NOT_FOUND หรือ INTERNAL)
message string
ข้อความแสดงข้อผิดพลาดที่ส่งถึงนักพัฒนาแอปเป็นภาษาอังกฤษ
details Array<object>
อาร์เรย์ของออบเจ็กต์ที่มีรายละเอียดข้อผิดพลาดเพิ่มเติม ซึ่งระบุโดยสมาชิก @type