Uso de la API de diagnóstico

Importante

Visual Studio App Center está programado para la retirada el 31 de marzo de 2025. Aunque puede seguir usando Visual Studio App Center hasta que se retire por completo, hay varias alternativas recomendadas a las que puede considerar la posibilidad de migrar.

Obtenga más información sobre las escalas de tiempo de soporte técnico y las alternativas.

Diagnósticos de App Center admite varias funcionalidades de API enumeradas en la sección bloqueos y errores de la página swagger de App Center. Lea la documentación de la API de App Center para obtener información sobre cómo adquirir un token de API y realizar llamadas a la API de App Center.

Nota

La API de diagnósticos de App Center no admite CORS (uso compartido de recursos entre orígenes), por lo que se producirán errores en las solicitudes de los clientes que exigen esto, como los exploradores. Para interactuar con la API desde un explorador, puede usar un servicio de proxy en su propio dominio que reenvía las solicitudes a la API de App Center.

Transición a las nuevas API

Con nuestro anuncio de disponibilidad general de diagnósticos de App Center el año pasado y nuestras mejoras de diagnóstico para UWP, hemos realizado algunos cambios en nuestras API para permitir que una canalización de back-end mejorada procese los bloqueos y errores. Dependiendo de las API que use, es posible que haya alguna acción necesaria en el final para garantizar una transición fluida.

Hay tres tipos de API de bloqueos:

  1. Bloquea las API que se asignan a las nuevas API.
  2. Bloquea las API que ya no existen
  3. Bloquea las API que permanecen inalteradas.

Bloquea las API que se asignan a las nuevas API.

Las API antiguas enumeradas en la sección bloqueos están en desuso y se han quitado. Debe usar las nuevas API de diagnóstico como se muestra en la tabla siguiente.

API de bloqueos antiguos Nueva API de bloqueos
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 de bloqueos sin modificar

Hay algunas API de bloqueo que siguen siendo las mismas en la nueva canalización. Las SIGUIENTES API seguirán funcionando según lo previsto y no es necesario realizar ninguna acción en este momento.

API de bloqueos sin modificar
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