API referansı

Bu sayfada, Metrics Configuration Generator (MCG) API uç noktalarıyla ilgili referans belgeleri yer almaktadı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

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

  • application/x-protobuf: Protobuf verilerini ikili kablo biçiminde gösterir. Bu biçim, makineler arası iletişim için verimlidir ancak insanlar tarafından okunamaz.
  • text/x-protobuf: Protobuf verilerini metin biçiminde gösterir. Bu biçim, insanlar tarafından okunabilir ve hata ayıklama veya manuel inceleme için kullanışlı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 başlığını, yanıt verilerinin seçilen biçimini belirtmek için ise Accept başlığını 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 MCG'nin dağıtıldığı ana makineye başvurmak için SERVICE_URL ortam değişkenini 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 gcloud kullanarak SERVICE_URL değerini ayarlayın:

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

Uzak Cloud Run uç noktalarını çağırırken curl komutlarınıza aşağıdaki yetkilendirme başlığını ekleyin:

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

Metrik yapılandırması

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

POST /api/v2/generate_metrics_config

Metrik yapılandırma isteği ayrıntılarından bir MetricsConfig örneği oluşturun. Bu işlem doğrulama adımını içerir. Şema ihlalleri, geçersiz referanslar, döngüsel bağımlılıklar veya diğer 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ı. 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ılı yanıt Yanıt gövdesi, application/x-protobuf veya text/x-protobuf biçiminde bir MetricsConfig mesajı içerir.
Metrics-Config-Size başlığı, bayt cinsinden yapılandırma boyutunu içerir.
Örnek
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

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

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

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ı. true ise doğrulama başarılı olduğunda MetricsConfig değerini döndürür.
İstek metni İstek gövdesi, application/x-protobuf veya text/x-protobuf biçiminde bir google.sdv.telemetry.MetricsConfig mesajı içermelidir.
Başarılı yanıt Yanıt gövdesi boş bir nesne (varsayılan) veya MetricsConfig (return_config, true ise) içerir.
Metrics-Config-Size üstbilgisi, bayt cinsinden yapılandırma boyutunu içerir.
Örnek
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"
      

Araç Sinyali Katalogları

Bu bölümde, Araç Sinyal Kataloglarını yönetmek için kullanılan uç noktalar açıklanmaktadır.

POST /api/v2/vs/

Yeni bir Araç Sinyal Kataloğu oluşturun veya mevcut kataloğu güncelleyin.

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

Tüm Araç Sinyal Kataloğu meta verilerini listeler.

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

DELETE /api/v2/vs/{version}

Belirtilen araç sinyal kataloğunu siler.

Uç nokta ayrıntıları
Yol parametreleri version: string
Zorunlu. POST isteğinin version alanında sağlanan, silinecek araç sinyal kataloğunun tanımlayıcısı.
Başarılı yanıt İşlem başarılı olursa API, silinen katalog sürümüyle birlikte application/json değerini döndürür:
{"version": "string"}
Örnek
curl --request DELETE "$SERVICE_URL/api/v2/vs/v1.0"
      

Hizmet durumu

Bu bölümde, hizmet durumunu kontrol etmek için kullanılan uç noktalar açıklanmaktadır.

GET /health

Hizmetin durumunu kontrol edin.

Uç nokta ayrıntıları
Başarılı yanıt Hizmet sorunsuz çalışıyorsa 200 OK durum kodu 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 gövdesi, aşağıdaki yapıya sahip bir hata nesnesi içerir:

{
  "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 (ör. 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 üyesi tarafından tanımlanan, daha fazla hata ayrıntısı içeren bir nesne dizisi.