API Referansı

Bu sayfada, Metrics Configuration Generator (MCG) API uç noktalarıyla ilgili referans belgeleri sağlanmaktadır.

Uç noktalara genel bakış

Aşağıdaki bölümlerde, MCG'de kullanılabilen API uç noktaları ayrıntılı olarak açıklanmaktadır.

Metrik yapılandırması

Araç Sinyali Katalogları

Hizmet durumu

Protobuf içerik türleri

Çeşitli API uç noktaları, protokol arabelleği (protobuf) biçimindeki verileri kabul eder veya döndürür. İki içerik türü kullanılır:

  • application/x-protobuf: İkili kablo biçimindeki protobuf verilerini gösterir. Bu biçim, makine-makine iletişimi için verimlidir ancak insanlar tarafından okunamaz.
  • text/x-protobuf: Metin biçimindeki protobuf verilerini gösterir. Bu veriler, insanlar tarafından okunabilir ve hata ayıklama veya manuel inceleme için yararlıdır.

Bir uç nokta istek veya yanıt için birden fazla protobuf biçimini desteklediğinde, istek verilerinin biçimini belirtmek için Content-Type üstbilgisini, yanıt verilerinin seçilen biçimini belirtmek için ise Accept üstbilgisini kullanın. Örneğin:

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

API'yi çağırma

Bu sayfadaki örneklerde REST API'yi çağırmak için curl kullanılır ve SERVICE_URL ortam değişkenini, MCG'nin dağıtıldığı ana makineye referans verecek şekilde ayarladığınız varsayılır. Yerel olarak çalıştırıldığında bu genellikle http://localhost:8005 olur.

Uzak bir Cloud Run örneğini hedeflemek için SERVICE_URL değerini gcloud kullanarak ayarlayın. Ardından, curl komutunuza OpenID Connect (OIDC) kimlik jetonu içeren bir yetkilendirme başlığı ekleyin:

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

Metrik yapılandırması

Bu bölümde, metrik yapılandırmalarını oluşturma ve doğrulama uç noktaları açıklanmaktadır.

POST /api/v1/generate_metrics_config

Metrik yapılandırma isteği ayrıntılarından MetricsConfig örneği oluşturun. Bu süreçte doğrulama da yer alır. Şema ihlalleri, geçersiz referanslar, döngüsel bağımlılıklar veya başka sorunlar nedeniyle oluşturma işlemi başarısız olursa API, hata ayrıntılarının listesini döndürür.

Uç nokta ayrıntıları
Sorgu parametreleri ignore_validation: boolean
İsteğe bağlıdır. true ise doğrulama hatalarını yoksay ve MetricsConfig değerini döndür.
İstek metni İstek gövdesi, JSON biçiminde metrik yapılandırma isteği ayrıntılarını içermelidir.
Başarı yanıtı Yanıt gövdesinde application/x-protobuf veya text/x-protobuf biçiminde bir MetricsConfig mesajı bulunur.
Metrics-Config-Size başlığı, yapılandırma boyutunu bayt cinsinden içerir.
Örnek
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

Raporların kodunu çözmek için belirli bir MetricsConfig ile ilgili dosya tanımlayıcılarını döndürür.

Uç nokta ayrıntıları
İstek metni İstek metni, application/x-protobuf veya text/x-protobuf biçiminde bir android.sdv.telemetry.MetricsConfig mesajı içermelidir.
Başarı yanıtı Yanıt gövdesinde application/x-protobuf veya text/x-protobuf biçiminde bir google.protobuf.FileDescriptorSet mesajı bulunur.
Örnek
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

Sağlanan MetricsConfig öğesini doğrulayarak doğrulama hatalarının listesini döndürür.

Uç nokta ayrıntıları
Sorgu parametreleri return_config: boolean
İsteğe bağlıdır. true ise başarılı doğrulama sonrasında MetricsConfig değerini döndürün.
İstek metni İstek metni, application/x-protobuf veya text/x-protobuf biçiminde bir android.sdv.telemetry.MetricsConfig mesajı içermelidir.
Başarı yanıtı Yanıt gövdesi boş bir nesne (varsayılan) veya MetricsConfig (return_config true ise) içerir.
Metrics-Config-Size üst bilgisi, bayt cinsinden yapılandırma boyutunu içerir.
Örnek
curl -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  --data-binary @PATH_TO_METRICS_CONFIG_JSON \
  "$SERVICE_URL/api/v1/validate_metrics_config"
      

Araç Sinyali Katalogları

Bu bölümde, Araç Sinyali Katalogları'nı yönetmeye yönelik uç noktalar açıklanmaktadır.

POST /api/v1/vs/

Yeni araç sinyali kataloğu oluşturun veya mevcut olanları güncelleyin.

Uç nokta ayrıntıları
İstek metni İstek gövdesi, version dizesi ve vehicle_signals için base64 kodlu bir FileDescriptorSet içeren bir JSON nesnesi içermelidir.
{
  "version": "string",
  "vehicle_signals": "string"
}
Başarı yanıtı İşlem başarılı olursa API, eklenen veya güncellenen kataloğun sürümüyle birlikte application/json değerini döndürür:
{"version": "string"}
Örnek vehicle_signals alanı için base64 kodlu FileDescriptorSet oluşturma talimatları için Araç Sinyali Katalogları başlıklı makaleyi inceleyin.
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/

Tüm Araç Sinyali Kataloğu meta verilerini listeleyin.

Uç nokta ayrıntıları
Başarı yanıtı Başarılı olursa API, katalog sürümlerinin listesini içeren application/json döndürür:
{"versions": [{"version": "string"}]}
Örnek
curl "$SERVICE_URL/api/v1/vs/"
      

DELETE /api/v1/vs/{version}

Belirtilen Araç Sinyali Kataloğu'nu silin.

Uç nokta ayrıntıları
Yol parametreleri version: string
Zorunlu. POST isteğinin version alanında belirtildiği şekilde, silinecek Araç Sinyali Kataloğu'nun tanımlayıcısı.
Başarı yanıtı Başarılı olursa API, silinen kataloğun sürümüyle birlikte application/json değerini döndürür:
{"version": "string"}
Örnek
curl --request DELETE "$SERVICE_URL/api/v1/vs/v1.0"
      

Hizmet durumu

Bu bölümde, hizmet durumunu kontrol etmeye yönelik uç noktalar açıklanmaktadır.

GET /health

Hizmetin durumunu kontrol edin.

Uç nokta ayrıntıları
Başarı yanıtı Sağlıklıysa hizmet 200 OK durum kodunu döndürür.
Örnek
curl "$SERVICE_URL/health"
      

Hata yanıtları

Bir API çağrısı hatayla (HTTP status 4xx veya 5xx) sonuçlandığında yanıt metninde aşağıdaki yapıya sahip bir hata nesnesi bulunur:

{
  "error": {
    "code": 400,
    "status": "INVALID_ARGUMENT",
    "message": "Request validation failed",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.BadRequest",
        "fieldViolations": [
          {
            "field": "fieldName",
            "description": "error description"
          }
        ]
      }
    ]
  }
}
Hata alanları
code int32
HTTP durum kodu (örneğin, 400, 404 veya 500).
status string
Google RPC standart durum kodu (ör. INVALID_ARGUMENT, NOT_FOUND veya INTERNAL).
message string
Geliştiriciye yönelik İngilizce hata mesajı.
details Array<object>
@type üyesiyle tanımlanan, daha fazla hata ayrıntısı içeren bir nesne dizisi.