Aangepaste integratie
Met de aangepaste integratie kunnen teams eenvoudig alle testdata vanuit de axe DevTools Extension direct naar een configureerbaar webhook-endpoint sturen. Hiermee kunt u een aangepast webhook-eindpunt opzetten dat axe DevTools-testgegevens kan ontvangen en verwerken.
Momenteel komen alleen ondernemingen die axe DevTools voor Web of axe DevTools Extension (Pro) via een Deque-verkoper hebben aangeschaft in aanmerking voor de aangepaste integratie. Als u interesse heeft in het laten inrichten van een aangepaste integratie, neem dan contact op met uw Deque-contactpersoon.
Hoe het werkt
De integratie configureren
Iedere beheerder van het axe Account Portal kan de integratie configureren.
- Klik op 'CONFIGURATIE' in de navigatiebalk.
- Selecteert u het tabblad 'Integraties'
- Klik op "Nieuwe verbinding toevoegen aan Aangepaste integratie"
- Voer een naam in (maximaal 255 tekens)
- Vul uw webhook(#webhook-api) URL in
- Geef een secret op (zie authenticatie hieronder)
Testresultaten verzenden
Automatisch Instellen van testId en url Queryparameters
Voor automatische testconfiguratie worden twee queryparameters ondersteund:
testId: de ID van de test in uw interne applicatie (bijvoorbeeld1234567)url: de URI-gecodeerde test-URL (bijv.https%3A%2F%2Fworkshop.dequelabs.com)
- Navigeer in uw browser naar
/axe-devtools/test-setup?testId=1234567&url=https%3A%2F%2Fworkshop.dequelabs.com - De axe DevTools Extension detecteert automatisch de test-ID en zet de uit te voeren tests in de wachtrij.
- Als de
url-queryparameter is opgegeven, wordt de browser automatisch naar de opgegeven URL geleid - Als er geen
urlqueryparameter is opgegeven, wordt u gevraagd om handmatig naar de URL te navigeren.
- Als de
- Open de axe DevTools Extension indien deze nog niet geopend is. Schermafbeelding van de teststartpagina van de aangesloten aangepaste integratie-extensie.(images/custom-integration-connected.png)
- Kies "Volledige pagina scannen", "Gedeeltelijke pagina scannen" of een IGT om het testen te starten.
- Zodra de test is voltooid, ga naar het tabblad "Overzicht" van uw opgeslagen test.
- Open het menu "Deelopties"
- Klik op "Resultaten naar aangepaste integratie verzenden"
Screenshot van geslaagde verzending naar aangepaste integratie(images/custom-integration-send-success.png)
- Indien het geconfigureerde webhook-endpoint met een
2xxresponscode antwoordt, wordt er een succesmelding weergegeven - Indien het geconfigureerde webhook-endpoint met een andere responscode dan
2xxantwoordt, wordt er een foutmelding weergegeven.
- Indien het geconfigureerde webhook-endpoint met een
Handmatig een test-ID toevoegen
- Open de axe DevTools Extension
- Maak een nieuwe opgeslagen test aan of navigeer naar een bestaande test
- Zodra de test is voltooid, ga naar het tabblad "Overzicht" van uw opgeslagen test.
- Open het menu "Deelopties"
- Klik op "Resultaten naar aangepaste integratie verzenden"
- Voer uw test-ID in
- Klik op "Verzenden"
- Indien het geconfigureerde webhook-endpoint met een
2xxresponscode antwoordt, wordt er een succesmelding weergegeven - Indien het geconfigureerde webhook-endpoint met een andere responscode dan
2xxantwoordt, wordt er een foutmelding weergegeven.
- Indien het geconfigureerde webhook-endpoint met een
Webhook API
Dit gedeelte beschrijft het webhook-eindpunt voor het ontvangen van testresultaten van axe DevTools.
Eindpuntinformatie
URL-structuur
De URL-structuur bepaalt u grotendeels zelf. U kunt elk gewenst domein en URL-pad gebruiken (zorg ervoor dat u bij het configureren van de aangepaste integratie de juiste URL invoert).
POST https://[your-domain]/[webhook-endpoint]Authenticatie
Authenticatie gebeurt met webhook-signaturen. Elk webhook-verzoek bevat een signature header die moet worden geverifieerd om te bevestigen dat het verzoek afkomstig is van axe DevTools.
Signatuurverificatie
- Er wordt een geheime sleutel gedeeld tussen axe DevTools en uw dienst.
- De handtekening is opgenomen in de
X-Hub-Signatureheader - Formaat:
X-Hub-Signature: sha256=<signature> - Tijdstempel
X-Deque-Request-Timestamp: <ISO timestamp> - Verifieer de handtekening door een SHA-256 HMAC te berekenen van de tijdstempel en de body van het verzoek met uw oorspronkelijk verstrekte geheime sleutel.
Example signature verification (node):
import crypto from 'crypto'
function verifyWebhookSignature(payload, timestamp, signature, secret) {
const expectedSignatureBody = Buffer.from(timestamp + JSON.stringify(payload), 'utf8')
const expectedSignature = crypto
.createHmac('sha256', secret)
.update(expectedSignatureBody)
.digest('base64')
return crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(expectedSignature)
)
}Verzoekkopteksten
| Koptekst | Beschrijving |
|---|---|
Content-Type |
application/json |
X-Deque-Event |
Het type gebeurtenis (bijv. integration-test-results) |
X-Deque-Request-Id |
Unieke identificator voor de webhook-aanvraag |
X-Deque-Request-Timestamp |
Een ISO 8601-tijdstempel |
X-Hub-Signature |
Payload-handtekening ter verificatie |
Schema van de Request Body
De webhook-payload volgt het axe Universal JSON-formaat(devtools-server/common-export-format). Hieronder vindt u het gedetailleerde schema met voorbeelden:
Voorbeeld payload
{
"source": {
"productName": "axe DevTools Enterprise",
"productComponentName": "axe-core",
"productVersion": "4.7.2"
},
"testDetails": {
"testId": "test-123e4567-e89b",
"integrationTestId": "your-test-id-123456",
"startDate": "2025-01-09T10:00:00Z",
"endDate": "2025-01-09T10:01:00Z",
"engine": "axe-core",
"axeVersion": "4.7.2",
"standard": "WCAG 2.1 AA",
"bestPracticesEnabled": true,
"experimentalEnabled": false,
"testName": "Homepage Accessibility Scan",
"createdBy": "john.doe@example.com"
},
"allIssues": [
{
"issueId": "issue-123",
"ruleId": "color-contrast",
"description": "Elements must have sufficient color contrast",
"help": "Elements must meet minimum color contrast ratio requirements",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.7/color-contrast",
"impact": "serious",
"needsReview": false,
"isExperimental": false,
"isManual": false,
"summary": "Button text does not have sufficient contrast with background",
"selector": [["#main-nav", "button.login"]],
"tags": ["wcag2aa", "wcag143"],
"createdAt": "2025-01-09T10:00:30Z",
"testUrl": "https://example.com/homepage"
}
]
}Reactievereisten
Uw webhook-eindpunt moet:
- binnen 10 seconden reageren
- Retourneer een
2xxstatuscode voor succesvolle ontvangst
Foutafhandeling
Implementeer geschikte foutafhandeling door in de volgende scenario's een andere statuscode dan 2xx te retourneren:
- Ongeldige signatuur
- Aanvraag time-out
- Onjuist gevormde payloads
- Serverfouten
