Menggunakan API Diagnostik
Penting
Visual Studio App Center dijadwalkan untuk dihentikan pada 31 Maret 2025. Meskipun Anda dapat terus menggunakan Visual Studio App Center hingga sepenuhnya dihentikan, ada beberapa alternatif yang direkomendasikan yang dapat Anda pertimbangkan untuk bermigrasi.
Pelajari selengkapnya tentang garis waktu dukungan dan alternatif.
Diagnostik App Center mendukung beberapa fungsi API yang tercantum di bawah bagian crash dan kesalahan di halaman swagger App Center. Baca Dokumentasi API App Center untuk mempelajari cara memperoleh token API dan melakukan panggilan ke API App Center.
Catatan
APP Center Diagnostics API tidak mendukung CORS (Cross-Origin Resource Sharing), sehingga permintaan dari klien yang mengamanatkan ini seperti browser akan gagal. Untuk berinteraksi dengan API dari browser, Anda dapat menggunakan layanan proksi di bawah domain Anda sendiri yang meneruskan permintaan ke API App Center.
Transisi ke API baru
Dengan pengumuman Ketersediaan Umum Diagnostik App Center kami tahun lalu dan peningkatan diagnostik UWP kami, kami membuat beberapa perubahan dalam API kami untuk memungkinkan alur backend yang ditingkatkan untuk memproses crash dan kesalahan Anda. Bergantung pada API mana yang Anda gunakan, mungkin ada beberapa tindakan yang diperlukan di ujung Anda untuk memastikan transisi yang lancar.
Ada tiga jenis API crash:
- Crash API yang memetakan ke API baru
- Crash API yang tidak ada lagi
- Crash API yang tetap tidak berubah
Crash API yang memetakan ke API baru
API lama yang tercantum di bagian crash tidak digunakan lagi dan telah dihapus. Anda harus menggunakan API diagnostik baru seperti yang tercantum dalam tabel di bawah ini.
API Crash Lama | CRASH API Baru |
---|---|
GET/v0.1/apps/{owner_name}/{app_name}/retention_settings | GET/v0.1/apps/{owner_name}/{app_name}/errors/retention_settings |
GET/v0.1/apps/{owner_name}/{app_name}/versions | GET/v0.1/apps/{owner_name}/{app_name}/analytics/versions |
GET/v0.1/apps/{owner_name}/{app_name}/crashes/{crash_id}/attachments/{attachment_id}/text | GET/v0.1/apps/{owner_name}/{app_name}/errors/{errorId}/attachments/{attachmentId}/text |
GET/v0.1/apps/{owner_name}/{app_name}/crashes/{crash_id}/attachments/{attachment_id}/location | GET/v0.1/apps/{owner_name}/{app_name}/errors/{errorId}/attachments/{attachmentId}/location |
GET/v0.1/apps/{owner_name}/{app_name}/crashes/{crash_id}/attachments | GET/v0.1/apps/{owner_name}/{app_name}/errors/{errorId}/attachments |
GET/v0.1/apps/{owner_name}/{app_name}/crash_groups/{crash_group_id}/stacktrace | GET/v0.1/apps/{owner_name}/{app_name}/errors/errorGroups/{errorGroupId}/stacktrace |
GET/v0.1/apps/{owner_name}/{app_name}/crash_groups/{crash_group_id}/crashes/{crash_id}/stacktrace | GET/v0.1/apps/{owner_name}/{app_name}/errors/errorGroups/{errorGroupId}/errors/{errorId}/stacktrace |
GET/v0.1/apps/{owner_name}/{app_name}/crash_groups/{crash_group_id}/crashes/{crash_id}/native/download | GET/v0.1/apps/{owner_name}/{app_name}/errors/errorGroups/{errorGroupId}/errors/{errorId}/download |
GET/v0.1/apps/{owner_name}/{app_name}/crash_groups/{crash_group_id}/crashes/{crash_id} | GET/v0.1/apps/{owner_name}/{app_name}/errors/errorGroups/{errorGroupId}/errors/{errorId} |
GET/v0.1/apps/{owner_name}/{app_name}/crash_groups/{crash_group_id}/crashes | GET/v0.1/apps/{owner_name}/{app_name}/errors/errorGroups/{errorGroupId}/errors |
GET/v0.1/apps/{owner_name}/{app_name}/crash_groups/{crash_group_id} | GET/v0.1/apps/{owner_name}/{app_name}/errors/errorGroups/{errorGroupId} |
GET/v0.1/apps/{owner_name}/{app_name}/crash_groups | GET/v0.1/apps/{owner_name}/{app_name}/errors/errorGroups |
DELETE/v0.1/apps/{owner_name}/{app_name}/crash_groups/{crash_group_id}/crashes/{crash_id} | DELETE 0.1/apps/{app_id}/errors/errorGroups/{errorGroupId}/errors/{errorId} |
PATCH/v0.1/apps/{owner_name}/{app_name}/crash_groups/{crash_group_id | PATCH/v0.1/apps/{owner_name}/{app_name}/errors/errorGroups/{errorGroupId} |
GET/v0.1/apps/{owner_name}/{app_name}/crashes_info | GET/v0.1/apps/{owner_name}/{app_name}/errors/errorGroups |
GET/v0.1/apps/{owner_name}/{app_name}/analytics/crash_groups | GET/v0.1/apps/{owner_name}/{app_name}/errors/errorGroups |
GET/v0.1/apps/{owner_name}/{app_name}/analytics/crash_groups/{crash_group_id}/crash_counts | GET/v0.1/apps/{owner_name}/{app_name}/errors/errorGroups/{errorGroupId}/errorCountsPerDay |
GET/v0.1/apps/{owner_name}/{app_name}/analytics/crash_counts | GET/v0.1/apps/{owner_name}/{app_name}/errors/errorCountsPerDay |
GET/v0.1/apps/{owner_name}/{app_name}/analytics/crash_groups/{crash_group_id}/models | GET/v0.1/apps/{owner_name}/{app_name}/errors/errorGroups/{errorGroupId}/models |
GET/v0.1/apps/{owner_name}/{app_name}/analytics/crash_groups/{crash_group_id}/operating_systems | GET/v0.1/apps/{owner_name}/{app_name}/errors/errorGroups/{errorGroupId}/operatingSystems |
GET/v0.1/apps/{owner_name}/{app_name}/crash_groups/{crash_group_id}/crashes/{crash_id}/raw/location | GET/v0.1/apps/{owner_name}/{app_name}/errors/errorGroups/{errorGroupId}/errors/{errorId}/location |
GET/v0.1/apps/{owner_name}/{app_name}/crash_groups/{crash_group_id}/crashes/{crash_id}/native | GET /v0.1/apps/{ownerName}/{appName}/errors/errorGroups/{errorGroupId}/errors/{errorId}/download?format=text" |
GET/v0.1/apps/{owner_name}/{app_name}/analytics/crashfree_device_percentages | GET/v0.1/apps/{owner_name}/{app_name}/errors/errorfreeDevicePercentages |
GET/v0.1/apps/{owner_name}/{app_name}/symbol_groups_info | GET/v0.1/apps/{owner_name}/{app_name}/diagnostics/symbol_groups_info |
GET/v0.1/apps/{owner_name}/{app_name}/symbol_groups/{symbol_group_id} | GET/v0.1/apps/{owner_name}/{app_name}/diagnostics/symbol_groups/{symbol_group_id} |
GET/v0.1/apps/{owner_name}/{app_name}/symbol_groups | GET/v0.1/apps/{owner_name}/{app_name}/diagnostics/symbol_groups |
API Crash yang Tidak Diubah
Ada beberapa API crash yang tetap sama di alur baru. API berikut akan terus berfungsi seperti yang diharapkan dan tidak ada tindakan yang diperlukan saat ini.
API Crash yang Tidak Diubah |
---|
GET/v0.1/apps/{owner_name}/{app_name}/symbols/{symbol_id}/status |
GET/v0.1/apps/{owner_name}/{app_name}/symbols/{symbol_id}/location |
POST/v0.1/apps/{owner_name}/{app_name}/symbols/{symbol_id}/ignore |
GET/v0.1/apps/{owner_name}/{app_name}/symbols/{symbol_id} |
GET/v0.1/apps/{owner_name}/{app_name}/symbols |
GET/v0.1/apps/{owner_name}/{app_name}/symbol_uploads/{symbol_upload_id}/location |
GET/v0.1/apps/{owner_name}/{app_name}/symbol_uploads/{symbol_upload_id} |
PATCH/v0.1/apps/{owner_name}/{app_name}/symbol_uploads/{symbol_upload_id} |
DELETE/v0.1/apps/{owner_name}/{app_name}/symbol_uploads/{symbol_upload_id} |
GET/v0.1/apps/{owner_name}/{app_name}/symbol_uploads |
POST/v0.1/apps/{owner_name}/{app_name}/symbol_uploads |