Obtenez des résultats par programmation

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard

Utilisez le service REST pour télécharger un rapport de synthèse de vos résultats d'accessibilité à l'aide d'une simple interface GET

Not for use with personal data

Le service REST des rapports téléchargeables vous permet de télécharger un résumé de vos résultats d'accessibilité Axe Developer Hub sous forme de données JSON, pour un traitement ultérieur ou une importation dans un autre logiciel. Le service GET a deux paramètres obligatoires :

  • Clé API - Trouvez une clé API personnelle correspondant à votre projet ou ajoutez une nouvelle clé API dans le Portail de compte Axe. Choisissez une clé API Axe Developer Hub si votre projet utilise les API web, CLI ou Watcher. Utilisez une clé API Axe DevTools Mobile pour les projets mobiles.
  • ID de projet - Fournissez l'ID du projet pour les données du projet que vous souhaitez télécharger. Trouvez votre ID de projet dans Axe Developer Hub.

Vous pouvez utiliser deux paramètres optionnels pour limiter votre requête à une branche Git spécifique ou à un SHA de commit Gitspécifique.

Résumé de la requête

  • Point de terminaison: https://axe.deque.com/api-pub/watcher/downloadable/report
  • Requête: GET
  • En-têtes (obligatoires):
    • X-API-Key: <DEQUE_API_KEY>
    • Accept: application/json
  • Paramètres de requête:
    • project_id (Obligatoire)
      • Description: Spécifie l'ID du projet pour le rapport du projet que vous souhaitez télécharger. Ce paramètre est obligatoire.
      • Exemple d'utilisation: GET https://axe.deque.com/api-pub/watcher/downloadable/report?project_id=<DEVHUB_PROJECT_ID>
    • branch_name (Optionnel)
      • Description: Renvoie le rapport téléchargeable pour le nom de branche Git spécifié.
      • Exemple d'utilisation: GET https://axe.deque.com/api-pub/watcher/downloadable/report?project_id=<DEVHUB_PROJECT_ID>&branch_name=<GIT_BRANCH>
    • commit_sha (Optionnel)
      • Description: Renvoie le rapport téléchargeable pour le SHA de commit Git spécifié.
      • Exemple d'utilisation: GET https://axe.deque.com/api-pub/watcher/downloadable/report?project_id=<DEVHUB_PROJECT_ID>&commit_sha=<GIT_COMMIT_SHA>
important

Lors de la première exécution, vous recevrez probablement une 202 Processing réponse, car le rapport téléchargeable est en cours de génération. Votre code devra gérer cette réponse et réessayer la requête. Voir Gestion d'une réponse 202 en traitement ci-dessous pour un exemple complet.

Exemple de curl requête

curl -L -H 'Accept: application/json' -H 'X-API-Key: <DEQUE_API_KEY>' 'https://axe.deque.com/api-pub/watcher/downloadable/report?project_id=<DEVHUB_PROJECT_ID>'
note

Si vous recevez une 202 Processing réponse, vous devriez réessayer votre demande. Voir Traitement d'une réponse de traitement 202 pour un exemple de script pour gérer une réponse 202.

Exemple de corps de réponse

{
  "report_id": "a4990926-3014-4799-aa39-7aca31fce412",
  "source": {
    "product_name": "axe-devtools-html",
    "product_component_name": "axe-devtools-watcher",
    "product_version": "3.20.2"
  },
  "test_details": {
    "test_id": "da0c79a5-6f1e-4692-a255-5757629208fa",
    "start_date": "2025-05-05T20:02:31.883Z",
    "end_date": "2025-05-05T20:02:42.789Z"
  },
  "commit": {
    "sha": "f73ea5a02386b359ffa79a76473f7a5ad41759d5",
    "author": "John Doe",
    "author_email": "john.doe@example.com",
    "message": "Merge pull request #233 from deque/221-add-examples-for-using-global-config-fields-2",
    "branch_name": "main",
    "repository_url": "https://github.com/dequelabs/watcher-examples.git",
    "tag": null
  },
  "devhub_summary": {
    "issue_count_total": 17,
    "issue_count_by_impact": {
      "critical": 0,
      "serious": 2,
      "moderate": 15,
      "minor": 0
    },
    "issue_count_by_rule": [
      {
        "severity": "serious",
        "rule_id": "color-contrast",
        "rule_help": "Elements must meet minimum color contrast ratio thresholds",
        "rule_help_url": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
        "count": 2
      },
      {
        "severity": "moderate",
        "rule_id": "heading-order",
        "rule_help": "Heading levels should only increase by one",
        "rule_help_url": "https://dequeuniversity.com/rules/axe/4.10/heading-order?application=axeAPI",
        "count": 2
      },
      {
        "severity": "moderate",
        "rule_id": "landmark-one-main",
        "rule_help": "Document should have one main landmark",
        "rule_help_url": "https://dequeuniversity.com/rules/axe/4.10/landmark-one-main?application=axeAPI",
        "count": 2
      },
      {
        "severity": "moderate",
        "rule_id": "page-has-heading-one",
        "rule_help": "Page should contain a level-one heading",
        "rule_help_url": "https://dequeuniversity.com/rules/axe/4.10/page-has-heading-one?application=axeAPI",
        "count": 2
      },
      {
        "severity": "moderate",
        "rule_id": "region",
        "rule_help": "All page content should be contained by landmarks",
        "rule_help_url": "https://dequeuniversity.com/rules/axe/4.10/region?application=axeAPI",
        "count": 9
      }
    ]
  }
}

Objet de réponse

Les sections suivantes décrivent les objets JSON dans le corps de la réponse.

Structure de niveau supérieur

Champ Type Description
report_id Chaîne Identifiant unique pour le rapport (format UUID)
source Objet Informations sur la source du rapport
test_details Objet Détails sur l'exécution du test
commit Objet Informations sur le commit Git associé au test
devhub_summary Objet Résumé des problèmes d'accessibilité trouvés

source Objet

Contient des informations sur le produit qui a généré le rapport :

Champ Type Description
product_name Chaîne Nom du produit (par ex., « axe-devtools-html »)
product_component_name Chaîne Nom du composant au sein du produit (par ex., « axe-devtools-watcher »)
product_version Chaîne Version du composant utilisé pour les tests

test_details Objet

Contient des informations sur l'exécution du test :

Champ Type Description
test_id Chaîne Identifiant unique pour le test (format UUID)
start_date Chaîne Horodatage ISO 8601 du début du test
end_date Chaîne Horodatage ISO 8601 de la fin du test

commit Objet

Contient des informations sur le commit Git associé au test :

Champ Type Description
sha Chaîne Hachage SHA complet du commit Git
author Chaîne Nom d'utilisateur de l'auteur du commit
author_email Chaîne Adresse e-mail de l'auteur du commit
message Chaîne Message de commit
branch_name Chaîne Nom de la branche où le commit a été réalisé
repository_url Chaîne URL du dépôt Git
tag Chaîne ou null Étiquette Git associée au commit, le cas échéant

devhub_summary Objet

Contient des informations résumées sur les problèmes d'accessibilité trouvés :

Champ Type Description
issue_count_total Nombre Nombre total de problèmes d'accessibilité trouvés
issue_count_by_impact Objet Répartition des problèmes par niveau d'impact
issue_count_by_rule Tableau Liste des problèmes organisés par règle
issue_count_by_impact Objet

Répartit les problèmes par niveau d'impact:

Champ Type Description
critical Nombre Nombre de problèmes d'impact critique
serious Nombre Nombre de problèmes d'impact sérieux
moderate Nombre Nombre de problèmes d'impact modéré
minor Nombre Nombre de problèmes d'impact mineur
issue_count_by_rule Tableau

Chaque objet dans ce tableau représente une règle avec la structure suivante :

Champ Type Description
severity Chaîne Niveau de gravité de la règle (« critique », « sérieux », « modéré » ou « mineur »)
rule_id Chaîne Identifiant de la règle
rule_help Chaîne Brève description de la règle
rule_help_url Chaîne Lien vers la documentation Deque University pour la règle
count Nombre Nombre de problèmes détectés pour cette règle

Réponses supplémentaires

202 Processing

Cette réponse indique que le rapport est toujours en cours de génération, et vous devez essayer de nouveau après avoir attendu.

Corps de la réponse

{
  "message": "Report is still processing",
  "state": "PROCESSING"
}

400 Bad Request

La valeur fournie pour commit_sha n'est pas une valeur SHA-1.

Corps de la réponse

{
  "error": "commit_sha must be a valid SHA-1 hash"
}

401 Unauthorized

L'un des messages d'erreur suivants accompagnera la 401 Unauthorized réponse.

La clé API spécifiée n'est pas valide

Corps de la réponse

{
  "error": "Invalid API key"
}

Il n'y a pas d'en-tête requis avec une clé API :

Corps de la réponse

{
  "error": "X-API-Key or Authorization header required"
}

404 Not Found

L'un des messages d'erreur suivants accompagnera la 404 Not Found réponse.

La valeur SHA utilisée avec commit_sha n'a pas pu être localisée

Cette erreur indique qu'il n'y a pas de données pour ce SHA dans les données du Axe Developer Hub, ce qui signifie généralement que la suite de tests n'a pas été exécutée contre ce commit Git. Notez que cette erreur est la même que celle retournée avec un nom de branche qui n'existe pas. (Voir l'erreur suivante.)

Corps de la réponse

{
  "error": "Session not found"
}

La valeur fournie pour branch_name n'existe pas

Cette réponse d'erreur est la même que l'erreur précédente (si le SHA fourni avec le commit_sha paramètre de requête n'existe pas dans les données du Axe Developer Hub).

Corps de la réponse

{
  "error": "Session not found"
}

La valeur fournie pour project_id n'existe pas

Cette réponse d'erreur est identique aux 404 erreurs précédentes.

Corps de la réponse

{
  "error": "Session not found"
}

Gérer une 202 Processing réponse

Ce script shell de démonstration montre comment utiliser curl pour redemander votre rapport si vous recevez une 202 Processing réponse. Étant donné que les suites de tests peuvent trouver de nombreuses violations d'accessibilité, notre système peut nécessiter un temps supplémentaire pour traiter tous les résultats avant que le rapport soit prêt à être téléchargé. Nous recommandons d'utiliser l'exemple ci-dessous pour créer un script qui réessayera continuellement et vérifiera si les résultats sont disponibles. Il réessaiera la requête jusqu'à 20 fois, avec un délai de cinq secondes entre les tentatives.

L'exemple nécessite que la variable d'environnement API_KEY soit définie sur votre clé API et PROJECT_ID soit définie sur votre ID de projet.

tip

Envisagez de supprimer les déclarations echo si vous souhaitez rediriger stdout et capturer votre rapport téléchargeable.

#!/bin/bash

URL="https://axe.deque.com/api-pub/watcher/downloadable/report"
MAX_ATTEMPTS=20
DELAY=5
TEMP_FILE=$(mktemp)

for ((i=1; i<=MAX_ATTEMPTS; i++)); do
    echo "Attempt $i..."
    
    # Get both status and response
    STATUS=$(curl -s -w '%{http_code}' -L -H "Accept: application/json" -H "X-API-Key: $API_KEY" -o "$TEMP_FILE" "$URL?project_id=$PROJECT_ID")
    
    case $STATUS in
        200)
            echo "Success!"
            cat "$TEMP_FILE"
            rm "$TEMP_FILE"
            exit 0
            ;;
        202)
            echo "Still processing, waiting ${DELAY}s..."
            sleep $DELAY
            ;;
        *)
            echo "Error: HTTP $STATUS"
            cat "$TEMP_FILE"
            rm "$TEMP_FILE"
            exit 1
            ;;
    esac
done

echo "Timeout after $MAX_ATTEMPTS attempts"
rm "$TEMP_FILE"
exit 1