Krijg Resultaten Programmatig

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

Gebruik de REST-service om een samenvattend rapport van uw toegankelijkheidsresultaten te downloaden via een eenvoudige GET-interface

Not for use with personal data
important

Deze eindpunt is verouderd. Gebruik de nieuwe Sessies en Resultaten API in plaats daarvan. Reacties van dit eindpunt bevatten nu een Deprecation antwoordheader.

Migreren naar de Sessies en Resultaten API

De nieuwe Sessies en Resultaten API vervangt dit eindpunt met twee afzonderlijke eindpunten: één om sessies voor een project op te sommen en één om resultaten van een specifieke sessie op te halen. Dit tweestapsmodel geeft je toegang tot alle sessies over takken en committeringen, niet alleen de meest recente.

Equivalent verzoek met format=summary

De format=summary modus van het Resultaten-eindpunt retourneert dezelfde JSON-vorm als dit eindpunt. Om een bestaand verzoek te repliceren, zoek eerst de sessie die overeenkomt met jouw tak of committering, vraag vervolgens de resultaten daarvan aan:

  1. Lijst sessies op om de session_id voor de tak of committering die je wilt, te vinden met behulp van de git_branch of commit_sha filters:

    curl -H "Accept: application/json" -H "X-API-Key: $API_KEY" \
      "https://axe.deque.com/api-pub/v1/results/projects/$PROJECT_ID/sessions?git_branch=$GIT_BRANCH"
  2. Vraag resultaten op voor die sessie door session_id, gebruikmakend van format=summary voor dezelfde JSON-vorm als dit eindpunt:

    curl -H "Accept: application/json" -H "X-API-Key: $API_KEY" \
      "https://axe.deque.com/api-pub/v1/results/sessions/$SESSION_ID/results?format=summary"
    important

    Het nieuwe eindpunt retourneert 204 No Content terwijl resultaten worden gegenereerd, niet 202 Processing zoals dit eindpunt doet. Als je bestaande code hebt die controleert op een 202 reactie, werk deze dan bij om in plaats daarvan om te gaan met 204. Zie Sessiestatus en het Polling-patroon voor een compleet polling-voorbeeld.

Verder gaan met format=full

Als je het volledige detailniveau van de problemen wilt, verder dan wat de samenvatting biedt, gebruik format=full om resultaten op te halen in Universele JSON (Algemeen Exportformaat). Dit formaat omvat elk toegankelijkheidsprobleem dat tijdens de sessie is gevonden: individuele overtredingen, onvolledige controles, successen, en niet-toepasbare regels georganiseerd per pagina.

curl -H "Accept: application/json" -H "X-API-Key: $API_KEY" \
  "https://axe.deque.com/api-pub/v1/results/sessions/$SESSION_ID/results?format=full"

Referentie van het Verouderde Eindpunt

De downloadbare rapporten REST-service stelt je in staat om een samenvatting van je Axe Developer Hub toegankelijkheidsresultaten te downloaden als JSON-gegevens, voor verdere verwerking of importeren in andere software. De GET-service heeft twee vereiste parameters:

  • API-sleutel - Vind een persoonlijke API-sleutel die overeenkomt met je project of voeg een nieuwe API-sleutel toe in het Axe Accountportaal. Kies een Axe Developer Hub API-sleutel als je project de web-API's, CLI of Watcher gebruikt. Gebruik een Axe DevTools Mobile API-sleutel voor mobiele projecten.
  • Project-ID - Lever de project-ID aan voor de bijbehorende projectgegevens die je wilt downloaden. Vind je project-ID in Axe Developer Hub.

Je kunt twee optionele parameters gebruiken om je query te beperken tot een specifieke Git-tak of een specifieke Git-commit SHA.

Verzoeksoverzicht

  • Eindpunt: https://axe.deque.com/api-pub/watcher/downloadable/report
  • Verzoek: GET
  • Headers (Vereist):
    • X-API-Key: <DEQUE_API_KEY>
    • Accept: application/json
  • Queryparameters:
    • project_id (Vereist)
      • Beschrijving: Geeft de project-ID op voor het projectrapport dat je wilt downloaden. Deze parameter is vereist.
      • Voorbeeldgebruik: GET https://axe.deque.com/api-pub/watcher/downloadable/report?project_id=<DEVHUB_PROJECT_ID>
    • branch_name (Optioneel)
      • Beschrijving: Retourneert het downloadbare rapport voor de opgegeven Git-taknaam.
      • Voorbeeldgebruik: GET https://axe.deque.com/api-pub/watcher/downloadable/report?project_id=<DEVHUB_PROJECT_ID>&branch_name=<GIT_BRANCH>
    • commit_sha (Optioneel)
      • Beschrijving: Retourneert het downloadbare rapport voor de opgegeven Git-commit SHA.
      • Voorbeeldgebruik: GET https://axe.deque.com/api-pub/watcher/downloadable/report?project_id=<DEVHUB_PROJECT_ID>&commit_sha=<GIT_COMMIT_SHA>
important

Bij de eerste keer uitvoeren krijg je waarschijnlijk een 202 Processing reactie, omdat het downloadbare rapport wordt gegenereerd. Je code moet deze reactie verwerken en het verzoek opnieuw proberen. Zie hieronder Omgaan met een 202 Verwerkingsreactie voor een volledig voorbeeld.

Voorbeeld curlVerzoek

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

Als je een 202 Processing-reactie ontvangt, moet je je verzoek opnieuw proberen. Zie Omgaan met een 202 Verwerkingsreactie voor een voorbeeldscript om een 202-reactie af te handelen.

Voorbeeld van antwoordlichaam

{
  "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
      }
    ]
  }
}

Antwoordobject

De volgende secties beschrijven de JSON-objecten in het antwoordlichaam.

Structuur op hoog niveau

Veld Type Beschrijving
report_id String Unieke identificatie voor het rapport (UUID-formaat)
source Object Informatie over de bron van het rapport
test_details Object Details over de testuitvoering
commit Object Git commit-informatie gekoppeld aan de test
devhub_summary Object Samenvatting van gevonden toegankelijkheidsproblemen

sourceObject

Bevat informatie over het product dat het rapport heeft gegenereerd:

Veld Type Beschrijving
product_name String Naam van het product (bijv. „axe-devtools-html“)
product_component_name String Naam van de component binnen het product (bijv. „axe-devtools-watcher“)
product_version String Versie van de component die voor het testen is gebruikt

test_detailsObject

Bevat informatie over de testuitvoering:

Veld Type Beschrijving
test_id String Unieke identificatie voor de test (UUID-formaat)
start_date String ISO 8601-tijdstempel voor wanneer de test begon
end_date String ISO 8601-tijdstempel voor wanneer de test was afgerond

commitObject

Bevat informatie over de Git commit gekoppeld aan de test:

Veld Type Beschrijving
sha String Volledige SHA-hash van de Git commit
author String Gebruikersnaam van de auteur van de commit
author_email String E-mailadres van de auteur van de commit
message String Commitbericht
branch_name String Naam van de tak waar de commit is gemaakt
repository_url String URL van de Git-repository
tag String of null Git-tag gekoppeld aan de commit, indien aanwezig

devhub_summaryObject

Bevat samenvattende informatie over gevonden toegankelijkheidsproblemen:

Veld Type Beschrijving
issue_count_total Nummer Totaal aantal gevonden toegankelijkheidsproblemen
issue_count_by_impact Object Uitsplitsing van problemen per impactniveau
issue_count_by_rule Array Lijst van problemen georganiseerd per regel
issue_count_by_impactObject

Spreekt problemen uit per impactniveau:

Veld Type Beschrijving
critical Nummer Aantal problemen met kritische impact
serious Nummer Aantal problemen met ernstige impact
moderate Nummer Aantal problemen met matige impact
minor Nummer Aantal problemen met kleine impact
issue_count_by_ruleArray

Elk object in deze array vertegenwoordigt een regel met de volgende structuur:

Veld Type Beschrijving
severity String Ernstniveau van de regel ("kritisch", "ernstig", "matig", of "klein")
rule_id String Identificatie voor de regel
rule_help String Korte beschrijving van de regel
rule_help_url String Link naar de Deque University documentatie voor de regel
count Nummer Aantal gevonden problemen voor deze regel

Aanvullende reacties

202 Processing

Deze reactie geeft aan dat het rapport nog wordt gegenereerd en dat u opnieuw uw verzoek moet indienen na te hebben gewacht.

Antwoordlichaam

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

429 Too Many Requests

Tijdens perioden van zware belasting kan dit eindpunt reageren met 429 Too Many Requests in plaats van direct verwerking te starten. Het onderliggende werk blijft in de wachtrij, zodat herhaald proberen geen dubbele verwerking creëert. De reactie bevat een Retry-After-header, in seconden — wacht ten minste zo lang voordat u het opnieuw probeert.

Antwoordlichaam

{
  "error": "Too many requests. Retry after the Retry-After interval."
}

400 Bad Request

De opgegeven waarde voor commit_sha is geen SHA-1 waarde.

Antwoordlichaam

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

401 Unauthorized

Een van de volgende foutmeldingen zal de 401 Unauthorized reactie vergezellen.

De opgegeven API-sleutel is niet geldig

Antwoordlichaam

{
  "error": "Invalid API key"
}

Er is geen verplichte header met een API-sleutel:

Antwoordlichaam

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

404 Not Found

Een van de volgende foutmeldingen zal de 404 Not Found reactie vergezellen.

De SHA-waarde gebruikt met commit_shakon niet worden gevonden

Deze fout geeft aan dat er geen gegevens voor deze SHA in de Axe Developer Hub gegevens zijn, wat meestal betekent dat de testsuite niet tegen deze Git commit is uitgevoerd. Let op, dit is dezelfde fout die wordt geretourneerd met een branchnaam die niet bestaat. (Zie de volgende fout.)

Antwoordlichaam

{
  "error": "Session not found"
}

De opgegeven waarde voor branch_namebestaat niet

Deze foutreactie is hetzelfde als de vorige fout (als de SHA die met de commit_sha queryparameter werd geleverd niet bestaat in de Axe Developer Hub gegevens).

Antwoordlichaam

{
  "error": "Session not found"
}

De opgegeven waarde voor project_idbestaat niet

Deze foutreactie is hetzelfde als de vorige 404 fouten.

Antwoordlichaam

{
  "error": "Session not found"
}

Een 202 Processingreactie afhandelen

Dit voorbeeldshellscript laat zien hoe u curl kunt gebruiken om uw rapport opnieuw aan te vragen als u een 202 Processing reactie ontvangt. Aangezien testsuites mogelijk talrijke toegankelijkheidsschendingen vinden, kan ons systeem extra tijd nodig hebben om alle resultaten te verwerken voordat het rapport klaar is om te downloaden. We raden aan het onderstaande voorbeeld te gebruiken om een script te maken dat voortduren herprobeert of de resultaten al beschikbaar zijn. Het zal tot 20 keer proberen het verzoek te herhalen, met een pauze van vijf seconden tussen de pogingen.

Het voorbeeld vereist dat de API_KEY omgevingsvariabele is ingesteld op uw API-sleutel en PROJECT_ID op uw project-ID.

tip

Overweeg de echo instructies te verwijderen als u wilt omleiden stdout en uw downloadbare rapport wilt vastleggen.

#!/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