Поделиться через


Использование API диагностики

Это важно

Центр приложений Visual Studio был прекращен 31 марта 2025 г., за исключением функций аналитики и диагностики, которые будут поддерживаться до 30 июня 2026 г. Подробнее.

Диагностика Центра приложений поддерживает несколько функциональных возможностей API, перечисленных в разделе сбоев и ошибок страницы swagger Центра приложений. Ознакомьтесь с документацией по API Центра приложений , чтобы узнать, как получить маркер API и выполнить вызовы к API Центра приложений.

Замечание

API диагностики App Center не поддерживает CORS (совместное использование ресурсов между источниками), поэтому запросы от клиентов, таких как браузеры, завершаются неудачей. Чтобы взаимодействовать с API из браузера, вы можете использовать прокси-службу в собственном домене, который перенаправит запросы в API Центра приложений.

Переход на новые API

С нашим объявлением об общедоступной доступности Центра приложений в прошлом году и нашими улучшениями диагностики UWP мы внесли некоторые изменения в наши API, чтобы обеспечить улучшенный внутренний конвейер для обработки сбоев и ошибок. В зависимости от используемых API может потребоваться некоторое действие для обеспечения плавного перехода.

Существует три типа API, связанных с аварийными сбоями:

  1. Вызывает сбои API, которые соответствуют новым API
  2. Аварийно завершает работу API, которые больше не существуют
  3. Вызывает сбой в работе API, которые остаются неизмененными

Вызывает сбои API, которые соответствуют новым API

Старые API, перечисленные в разделе аварийного сбоя, устарели и были удалены. Необходимо использовать новые API диагностики, как указано в таблице ниже.

Старые API сбоев Новый API сбоев
GET/v0.1/apps/{owner_name}/{app_name}/настройки_удержания 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}/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}/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-интерфейсы сбоя

В новом потоке остаются неизменными некоторые API для обработки сбоев. Следующие API будут продолжать работать должным образом, и в настоящее время не требуется никаких действий.

Неизмененные API-интерфейсы сбоя
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