Projekte API-Referenz

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

Erstellen, abrufen, aktualisieren, löschen und verwalten Sie Mitgliedschaften für Ihre Axe Developer Hub-Projekte programmatisch mit der REST-API

Not for use with personal data

Die Projects API ermöglicht es Ihnen, Axe Developer Hub-Projekte und deren Mitgliedschaft programmgesteuert zu verwalten, indem Sie denselben Axe Account-API-Schlüssel verwenden, den Sie bereits für die anderen REST-APIs des Axe Developer Hub verwenden. Es gibt kein separates Anmeldeverfahren für das Projektmanagement. Für eine Schritt-für-Schritt-Einführung siehe Erste Schritte mit der Projektmanagement-Automatisierung.

Wenn Sie nur die ID eines Projekts anhand seines Namens herausfinden müssen, um die Sessions-und-Ergebnisse-API aufzurufen, siehe unten Projekte auflisten. Wenn Sie Ihre Projekt-ID bereits kennen, können Sie sie in Axe Developer Hub finden und direkt die Sessions-und-Ergebnisse-API aufrufen.

Authentifizierung

Alle Anfragen erfordern einen API-Schlüssel. Geben Sie ihn im X-API-Key-Header an:

X-API-Key: <DEQUE_API_KEY>

Finden Sie Ihren API-Schlüssel im Axe-Konto-Portal. Wählen Sie einen Axe Developer Hub-API-Schlüssel für Web- oder CI/CD-Projekte. Wählen Sie einen Axe DevTools Mobile-API-Schlüssel für mobile Projekte.

Behandeln Sie Ihren API-Schlüssel als Geheimnis: Speichern Sie ihn in einer Umgebungsvariable oder im Geheimnis-Speicher Ihrer CI/CD-Plattform, anstatt ihn in Ihren Anfragen zu kodieren.

Zugangskontrolle und Berechtigungen

  • Ein Projekt erstellen erfordert ein aktives Abonnement (Lizenz) für diesen Projekttyp. Wer auch immer ein Projekt erstellt, wird automatisch dessen Projektadministrator.
  • Projektrollen sind Administrator und Mitglied. Ein Projektadministrator kann das Projekt aktualisieren oder löschen und seine Mitgliedschaft verwalten. Ein Projektmitglied kann auf das Projekt zugreifen, es aber nicht verwalten oder die Mitgliedschaft ändern.
  • Organisations-Admins können jedes Projekt ihrer Organisation, für das es eine Lizenz gibt, sehen und verwalten, unabhängig von ihrer eigenen Projektmitgliedschaft. Sie benötigen keine persönliche Lizenz, um ein bestehendes Projekt anzusehen, zu aktualisieren, zu löschen oder dessen Mitglieder zu verwalten. Ein Projekt erstellen ist die eine Ausnahme: es erfordert immer eine aktive Lizenz, egal ob der Anrufer ein Org-Admin ist oder nicht.
  • Ein Mitglied zu einem Projekt hinzuzufügen, erfordert nicht, dass dieses Mitglied eine Lizenz besitzt. Die API registriert sie sofort als Projektmitglied, aber sie können erst auf das Projekt zugreifen, wenn sie eine Lizenz besitzen. Der Zielnutzer muss bereits der Organisation angehören. Sie können niemanden hinzufügen, der nicht bereits Organisationsmitglied ist.
  • Das Löschen eines Projekts ist endgültig. Es gibt keine Selbstwiederherstellung für ein gelöschtes Projekt.
  • In jedem Fall ist die Antwort auf das Produkt des API-Schlüssels beschränkt. Ein API-Schlüssel des Axe Developer Hub gibt nur Axe Developer Hub (Web)-Projekte zurück und verwaltet diese. Ein Axe DevTools Mobile-API-Schlüssel gibt nur Axe DevTools Mobile-Projekte zurück und verwaltet diese.

Ein inaktives Abonnement gibt 401 Unauthorized zurück.

Konfigurationswerte für Projekttypen

Jedes Projekt hat einen selected_project_type, und jeder Typ akzeptiert nur einen bestimmten, festen Satz von test_language / test_platform-Werten:

selected_project_type Produktfamilie Gültige test_language Gültige test_platform
axe-devtools-watcher Web javascript, typescript Cypress, Cypress Component, WebDriverJS, Playwright, Playwright Test, Puppeteer, WebdriverIO, WebdriverIO Testrunner
axe-devtools-watcher Web java Selenium WebDriver, Playwright
axe-devtools-html Web null (erforderlich) null (erforderlich)
axe-devtools-mobile Mobil null (erforderlich) Appium, Espresso, UI Automator, XCUITest

Ein Projekt-selected_project_type ist festgelegt, wenn das Projekt erstellt wird. Um einen anderen Typ zu verwenden, erstellen Sie ein neues Projekt.

Projekte auflisten

Gibt die Liste der Projekte zurück, auf die der authentifizierte API-Schlüssel zugreifen kann.

Anfrage

  • Endpunkt: GET https://axe.deque.com/api-pub/v1/results/projects
  • Header (erforderlich):
    • X-API-Key: <DEQUE_API_KEY>
    • Accept: application/json

Abfrageparameter

Alle Abfrageparameter sind optional.

Parameter Beschreibung
project_types Kommagetrennte Liste der Projektarten, die zurückgegeben werden sollen, z.B. axe-devtools-watcher,axe-devtools-html. Akzeptiert auch die Aliase web und mobile, die jeweils auf die konkreten Typen für dieses Produkt erweitert werden: web gibt axe-devtools-watcher und axe-devtools-html-Projekte zurück, und mobile gibt axe-devtools-mobile-Projekte zurück (Axe DevTools Mobile SDK und Appium-Projekte). Wenn Sie diesen Parameter weglassen, gibt die Antwort jeden Projekttyp zurück, auf den Ihr API-Schlüssel zugreifen kann.
member_only true oder false. Standard: false. Wenn Sie ein Organisationsadministrator sind, gibt true nur die Projekte zurück, bei denen Sie Mitglied sind, anstatt alle Projekte in Ihrer Organisation. Für andere Benutzer hat der Parameter keine Auswirkung, da die Antwort bereits nur die Projekte enthält, bei denen sie Mitglied sind.
page_size Anzahl der Projekte, die pro Seite zurückgegeben werden sollen. Standard: 30. Maximum: 100. Werte über dem Maximum werden auf 100 begrenzt. Siehe Cursor-Paginierung.
after Cursor-Wert aus der vorherigen Antwort, der verwendet wird, um die nächste Seite abzurufen. Siehe Cursor-Paginierung.

Antwortinhalt

Eine erfolgreiche Antwort gibt ein JSON-Array von Projektobjekten zurück. Jedes Projektobjekt enthält die folgenden Felder:

Feld Typ Beschreibung
project_id String Eindeutiger Bezeichner für das Projekt. Wenn Sie diese API oder die Sitzungs-Endpunkt aufrufen, verwenden Sie diesen Wert als {project_id}.
name String Der Anzeigename des Projekts.
selected_project_type String Der Projekttyp, zum Beispiel axe-devtools-watcher oder axe-devtools-html. Siehe Konfigurationswerte für Projekttypen.
test_language String Die Testsprache des Projekts. Für Projekttypen, die keine Testsprache verwenden, ist dies null. Siehe Konfigurationswerte für Projekttypen.
test_platform String Die Testplattform des Projekts. Für Projekttypen, die keine Testplattform verwenden, ist dies null. Siehe Konfigurationswerte für Projekttypen. Lesen Sie test_language und test_platform, bevor Sie ein Projekt aktualisieren: Das Update validiert das Paar, nachdem Ihre Änderungen mit diesen gespeicherten Werten zusammengeführt wurden.
role String Ihre Rolle im Projekt: admin oder contributor für ein Projektmitglied. Wenn Sie ein Organisationsadministrator sind, der kein Mitglied des Projekts ist, ist dies null.
user_id String Ihre Benutzer-ID, wenn role gesetzt ist. Wenn role null ist, ist dies null.
enterprise_id String ID der Organisation, der das Projekt gehört. Wenn das Projekt keiner Organisation angehört, ist dies null.
is_enterprise_project Boolean Ob das Projekt zu einer Organisation gehört, das heißt, ob enterprise_id gesetzt ist.
created_at String ISO 8601 UTC-Zeitstempel für die Erstellungszeit des Projekts.
updated_at String ISO 8601 UTC-Zeitstempel für die letzte Aktualisierung des Projekts. Wenn das Projekt nie aktualisiert wurde, ist dies null.
run_by String Name des Benutzers, dessen API-Schlüssel die letzte Sitzung des Projekts ausgeführt hat. Wenn das Projekt keine Sitzungen hat oder der Benutzer nicht aufgelöst werden kann (zum Beispiel wurde der API-Schlüssel gelöscht), ist dies null.
last_session_created_at String ISO 8601 UTC-Zeitstempel der letzten Sitzung des Projekts. Wenn das Projekt keine Sitzungen hat, ist dies null.
has_git_information Boolean Ob das Projekt Git-Metadaten angehängt hat.
git_url String Git-Repository-URL, die dem Projekt zugeordnet ist. Wenn das Projekt keine Git-Informationen hat, ist dies null.
latest_session Objekt Details der letzten Sitzung des Projekts, einschließlich ihrer ID (id), Erstellungszeit (created_at) und des Git-Branchs (git_branch). Wenn das Projekt keine Sitzungen hat, ist dies null. Dieses Feld enthält nur eine Sitzung. Um alle Sitzungen aufzulisten, verwenden Sie stattdessen die Sitzungs-Endpunkt.

Antworten können zusätzliche Felder enthalten, die hier nicht aufgeführt sind, und im Laufe der Zeit können neue Felder hinzugefügt werden. Ignorieren Sie alle Felder, die Sie nicht erkennen, und verlassen Sie sich nicht auf nicht dokumentierte Felder.

Beispiel für den Antwortinhalt

[
  {
    "project_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "name": "webapp-ci",
    "selected_project_type": "axe-devtools-watcher",
    "test_language": "typescript",
    "test_platform": "Playwright",
    "role": "admin",
    "user_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
    "enterprise_id": "3f2b8e1a-6c4d-4f7e-9a0b-1d2c3e4f5a6b",
    "is_enterprise_project": true,
    "created_at": "2026-06-01T14:23:00.000Z",
    "updated_at": "2026-06-10T16:45:00.000Z",
    "run_by": "Jane Developer",
    "last_session_created_at": "2026-06-14T09:12:00.000Z",
    "has_git_information": true,
    "git_url": "https://github.com/example/webapp",
    "latest_session": {
      "id": "0d4a85a2-9e6f-44ef-b814-fee8412abeb0",
      "created_at": "2026-06-14T09:12:00.000Z",
      "git_branch": "main"
    }
  },
  {
    "project_id": "f0e1d2c3-b4a5-6789-0123-456789abcdef",
    "name": "design-system",
    "selected_project_type": "axe-devtools-html",
    "test_language": null,
    "test_platform": null,
    "role": "admin",
    "user_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
    "enterprise_id": "3f2b8e1a-6c4d-4f7e-9a0b-1d2c3e4f5a6b",
    "is_enterprise_project": true,
    "created_at": "2026-05-20T08:00:00.000Z",
    "updated_at": null,
    "run_by": null,
    "last_session_created_at": null,
    "has_git_information": false,
    "git_url": null,
    "latest_session": null
  },
  {
    "project_id": "c4d5e6f7-a8b9-4c0d-9e1f-2a3b4c5d6e7f",
    "name": "ios-app-ci",
    "selected_project_type": "axe-devtools-mobile",
    "test_language": null,
    "test_platform": "XCUITest",
    "role": "admin",
    "user_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
    "enterprise_id": "3f2b8e1a-6c4d-4f7e-9a0b-1d2c3e4f5a6b",
    "is_enterprise_project": true,
    "created_at": "2026-06-03T10:15:00.000Z",
    "updated_at": null,
    "run_by": "Jane Developer",
    "last_session_created_at": "2026-06-15T11:05:00.000Z",
    "has_git_information": false,
    "git_url": null,
    "latest_session": {
      "id": "5b6c7d8e-9f0a-4b1c-8d2e-3f4a5b6c7d8e",
      "created_at": "2026-06-15T11:05:00.000Z",
      "git_branch": null
    }
  }
]

Um das Beispiel kurz zu halten, zeigt jedes latest_session-Objekt nur drei seiner Felder. Die API gibt mehr zurück.

Cursor-Paginierung

Die Paginierung ist optional. Weder page_size noch after senden, und die Antwort gibt Ihre vollständige Projektliste in einer einzigen Antwort zurück, ohne Cursor-Header.

Um stattdessen durch die Ergebnisse zu blättern, verwendet die Projekt-API die gleiche cursorbasierte Paginierung wie die Sitzungs-Endpunkt. Wenn es mehr Ergebnisse über die aktuelle Seite hinaus gibt, gibt die Antwort einen undurchsichtigen Cursor-Wert im x-pagination-cursor-Header zurück. Übergeben Sie diesen Wert als after Abfrageparameter in Ihrer nächsten Anfrage, um die nächste Seite abzurufen.

Wenn die Antwort kein x-pagination-cursor-Header hat, sind Sie auf der letzten Seite.

Ein Projekt-ID nach Namen suchen

Dieses Beispiel verwendet curl und jq, um die ID eines Projekts von seinem Namen aus zu finden:

curl -s \
  -H "Accept: application/json" \
  -H "X-API-Key: $API_KEY" \
  "https://axe.deque.com/api-pub/v1/results/projects" \
  | jq -r '.[] | select(.name == "webapp-ci") | .project_id'

Übermitteln Sie die zurückgegebene ID an die Sitzungs-Endpunkt, um die Sitzungen dieses Projekts aufzulisten.

Fehlerantworten bei der Projektauflistung

Status Ursache
400 Bad Request Der project_types-Wert enthält einen ungültigen Projekttyp, der after-Cursor ist fehlerhaft, page_size/after wurde in der Abfragezeichenfolge wiederholt, oder member_only ist nicht true oder false.
401 Unauthorized Der API-Schlüssel ist ungültig, fehlt oder das zugehörige Abonnement ist inaktiv.

Ein Projekt abrufen

Gibt ein einzelnes Projekt nach seiner ID zurück, in der gleichen Form wie Projekte auflisten.

Anfrage

  • Endpunkt: GET https://axe.deque.com/api-pub/v1/results/projects/{project_id}
  • Header (erforderlich):
    • X-API-Key: <DEQUE_API_KEY>
    • Accept: application/json

Fehlerantworten beim Abrufen eines Projekts

Status Ursache
400 Bad Request project_id ist keine gültige UUID.
401 Unauthorized Der API-Schlüssel ist ungültig, fehlt oder das zugehörige Abonnement ist inaktiv.
403 Forbidden Das Projekt existiert, liegt aber außerhalb der Organisation oder des Produkttyps Ihres API-Schlüssels, oder Sie sind kein Mitglied davon.
404 Not Found Es existiert kein Projekt mit dieser ID oder das Projekt wurde gelöscht.

Ein Projekt erstellen

important

Für die Erstellung eines Projekts ist die vollständige konfigurierbare Reihe erforderlich., name, selected_project_type, test_language und test_platform sind alle erforderlich. Ein ausgelassenes Feld wird mit einem 400-Fehler abgelehnt.

Anfrage

  • Endpunkt: POST https://axe.deque.com/api-pub/v1/results/projects
  • Header (erforderlich):
    • X-API-Key: <DEQUE_API_KEY>
    • Content-Type: application/json
    • Accept: application/json

Anfrage-Inhalt

Feld Typ Erforderlich Beschreibung
name String Ja Der Anzeigename des Projekts. 1 bis 512 Zeichen.
selected_project_type String Ja Der Typ des Projekts. Siehe Konfigurationswerte für Projekttypen.
test_language Zeichenfolge oder null Ja Muss ein gültiger Wert für selected_project_type sein. Siehe Konfigurationswerte für Projekttypen.
test_platform Zeichenfolge oder null Ja Muss ein gültiger Wert für selected_project_type und test_language sein. Siehe Konfigurationswerte für Projekttypen.

Beispiel für Anfrage-Inhalt

{
  "name": "webapp-ci",
  "selected_project_type": "axe-devtools-watcher",
  "test_language": "typescript",
  "test_platform": "Playwright"
}

Antwortinhalt

Gibt das erstellte Projekt zurück, in derselben Form wie Projekte auflisten. Wer ein Projekt erstellt, wird automatisch dessen Projekt-Administrator, sodass kein separater Mitgliedschaftsanruf erforderlich ist. Ein erfolgreicher Erstellvorgang gibt 201 Created zurück.

Fehlerantworten beim Erstellen eines Projekts

Status Ursache
400 Bad Request Der Anfragetext fehlt ein erforderlichers Feld, oder selected_project_type ist kein gültiger Projekttyp. Es kann auch bedeuten, dass test_language/test_platform keine gültige Kombination für selected_project_type sind oder dass name leer oder über 512 Zeichen lang ist.
401 Unauthorized Der API-Schlüssel ist ungültig, fehlt oder das zugehörige Abonnement ist inaktiv.
403 Forbidden Das Produkt Ihres API-Schlüssels stimmt nicht mit selected_project_type überein, oder Ihr Abonnement deckt diesen Projekttyp nicht ab.

Ein Projekt aktualisieren

note

Eine PATCH ändert nur die Felder, die Sie senden. Obwohl name, selected_project_type, test_language und test_platform jeweils optional sind, benötigt die Anfrage mindestens eines. Ein ausgelassenes Feld behält seinen gespeicherten Wert. Nach der Aktualisierung müssen test_language und test_platform noch ein gültiges Paar für das Projekt-selected_project_type sein, daher überprüfen Sie vor dem Senden nur eines von beiden den aktuellen Wert des anderen.

Anfrage

  • Endpunkt: PATCH https://axe.deque.com/api-pub/v1/results/projects/{project_id}
  • Header (erforderlich):
    • X-API-Key: <DEQUE_API_KEY>
    • Content-Type: application/json
    • Accept: application/json

Anfrage-Inhalt

Feld Typ Erforderlich Beschreibung
name String Nein Der Anzeigename des Projekts. 1 bis 512 Zeichen.
selected_project_type String Nein Der Typ des Projekts kann nach der Erstellung nicht geändert werden. Das Senden des aktuellen Wertes wird akzeptiert, und jeder andere Wert führt zu einem 400-Fehler.
test_language Zeichenfolge oder null Nein Muss ein gültiger Wert für das Projekt-selected_project_type sein. Siehe Konfigurationswerte für Projekttypen.
test_platform Zeichenfolge oder null Nein Muss ein gültiger Wert für das Projekt-selected_project_type und test_language sein. Siehe Konfigurationswerte für Projekttypen.

Beispiel für Anfrage-Inhalt

{
  "name": "webapp-ci-renamed"
}

Antwortinhalt

Gibt das aktualisierte Projekt zurück, in derselben Form wie Projekte auflisten. Eine erfolgreiche Aktualisierung gibt 200 OK zurück.

Fehlerantworten bei der Aktualisierung eines Projekts

Status Ursache
400 Bad Request Der Anfragetext enthält keines der aktualisierbaren Felder, oder selected_project_type unterscheidet sich vom aktuellen Typ des Projekts. Es kann auch bedeuten, dass test_language/test_platform für den Projekttyp nicht gültig sind oder dass name leer oder über 512 Zeichen lang ist.
401 Unauthorized Der API-Schlüssel ist ungültig, fehlt oder das zugehörige Abonnement ist inaktiv.
403 Forbidden Das Produkt Ihres API-Schlüssels stimmt nicht mit dem Projekt-selected_project_type überein, oder Ihr Abonnement deckt diesen Projekttyp nicht ab. Es deckt auch den Fall ab, dass Sie kein Projektadministrator sind.
404 Not Found Es existiert kein Projekt mit dieser ID oder das Projekt wurde gelöscht.

Ein Projekt löschen

important

Das Löschen eines Projekts ist endgültig. Es gibt keine Selbstwiederherstellung.

Anfrage

  • Endpunkt: DELETE https://axe.deque.com/api-pub/v1/results/projects/{project_id}
  • Header (erforderlich):
    • X-API-Key: <DEQUE_API_KEY>
    • Accept: application/json

Antwortinhalt

{ "deleted": true }

Fehlerantworten beim Löschen eines Projekts

Status Ursache
400 Bad Request project_id ist keine gültige UUID.
401 Unauthorized Der API-Schlüssel ist ungültig, fehlt oder das zugehörige Abonnement ist inaktiv.
403 Forbidden Sie sind kein Projektadministrator oder kein Organisationsadministrator der Organisation, die das Projekt besitzt, oder der Projekttyp liegt außerhalb Ihres Zugriffs.
404 Not Found Es gibt kein Projekt mit dieser ID, oder das Projekt wurde bereits gelöscht.

Projektmitgliedschaft

Die Mitgliedschaft eines Projekts ist eine Unterressource des Projekts. Ein Projektadministrator kann das Projekt und seine Mitgliedschaft verwalten. Ein Projektmitglied (die member-Rolle in den unten stehenden Mitgliedschaftsoperationen) kann auf das Projekt zugreifen, es jedoch nicht verwalten. Die Mitgliedschaftsoperationen identifizieren Benutzer anhand ihrer E-Mail-Adresse. Das Hinzufügen eines Mitglieds erfordert nicht, dass dieses Mitglied eine Lizenz besitzt. Die API erfasst sie sofort, aber sie können nicht auf das Projekt zugreifen, bis sie eine Lizenz besitzen. Der Zielbenutzer muss bereits Ihrer Organisation angehören. Sie können niemanden hinzufügen, der nicht bereits Mitglied der Organisation ist.

Verwenden Sie nach Möglichkeit die folgenden Batch-Operationen. Alle drei Schreiboperationen akzeptieren mehrere Benutzer in einem einzigen Anruf. Dies reduziert die Anzahl der nötigen Anfragen. Wenn Sie die Mitgliedschaft für eine große Organisation verwalten, wenden Sie Backoff und Wiederholungen an, wenn Sie eine 429-Antwort erhalten. Siehe 429 Too Many Requests für das allgemeine Muster.

Projektmitglieder auflisten

  • Endpunkt: GET https://axe.deque.com/api-pub/v1/results/projects/{project_id}/memberships
  • Header (erforderlich): X-API-Key: <DEQUE_API_KEY>, Accept: application/json

Antwortinhalt

{
  "members": [
    {
      "user_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "role": "admin",
      "email": "jane@example.com",
      "first_name": "Jane",
      "last_name": "Doe",
      "active_license": true,
      "created_at": "2026-06-01T14:23:00.000Z"
    }
  ]
}
Feld Typ Beschreibung
user_id String Die eindeutige Benutzer-ID des Mitglieds.
role String admin oder member.
email, first_name, last_name Zeichenfolge oder null Die E-Mail-Adresse des Mitglieds ist der Wert, den die Hinzufügen-, Rollenändern- und Entfernen-Operationen zur Identifikation verwenden. Wenn der Axe Account-Eintrag des Mitglieds nicht mehr existiert, sind diese null. Die Antwort listet das Mitglied dennoch auf, anstatt die Zeile zu löschen, sodass eine vorhandene Administrator-Mitgliedschaftszeile immer einen Administrator für das Projekt zeigt.
active_license Boolean Ob das Mitglied derzeit über eine aktive Lizenz für den Produkttyp dieses Projekts verfügt.
created_at String ISO 8601 UTC-Zeitstempel für die Erstellungszeit der Mitgliedschaft.

Projektmitglieder hinzufügen

  • Endpunkt: POST https://axe.deque.com/api-pub/v1/results/projects/{project_id}/memberships
  • Header (erforderlich): X-API-Key: <DEQUE_API_KEY>, Content-Type: application/json, Accept: application/json

Anfrage-Inhalt

{
  "user_email_role_pairs": [
    { "user_email": "sam@example.com", "role": "member" },
    { "user_email": "alex@example.com", "role": "admin" }
  ]
}

user_email ist die E-Mail-Adresse des Axe Accounts des Benutzers. Der Abgleich ignoriert Groß- und Kleinschreibung und umgebende Leerzeichen. role akzeptiert admin oder member (contributor wird ebenfalls als Synonym für member akzeptiert). Jeder Benutzer kann in einer Anfrage nur einmal auftauchen. Das Hinzufügen eines Benutzers, der bereits zum Projekt gehört, ist für diesen Eintrag ein No-Op: es ändert seine bestehende Rolle nicht. Dies ist eine Stapeloperation. Ein ungültiger Eintrag lehnt die gesamte Anfrage ab, und die API schreibt nichts. Die Fehlermeldung listet jeden Eintrag auf, der fehlgeschlagen ist, sodass Sie einen Stapel in einem Durchgang korrigieren können.

Ein erfolgreicher Antrag gibt 201 Created mit { "created": true } zurück, unabhängig davon, ob der Antrag tatsächlich neue Mitgliedschaften hinzugefügt hat.

Mitgliedsrollen ändern

  • Endpunkt: PATCH https://axe.deque.com/api-pub/v1/results/projects/{project_id}/memberships
  • Header (erforderlich): X-API-Key: <DEQUE_API_KEY>, Content-Type: application/json, Accept: application/json
  • Anfrage-Inhalt: gleiche user_email_role_pairs-Form wie Projektmitglieder hinzufügen

Jedes user_email muss einem aktuellen Mitglied des Projekts angehören. Ein Projekt muss immer mindestens einen admin behalten. Die API lehnt eine Anfrage ab, die das Projekt ohne Admin zurücklässt. Ein allein verbleibendes Mitglied, das der einzige Admin des Projekts ist, kann seine eigene Rolle nicht ändern. Dies ist ein Batch-Vorgang. Ein ungültiger Eintrag lehnt die gesamte Anfrage ab, und die API schreibt nichts.

Eine erfolgreiche Anfrage gibt 200 OK mit { "ok": true } zurück.

Projektmitglieder entfernen

  • Endpunkt: DELETE https://axe.deque.com/api-pub/v1/results/projects/{project_id}/memberships?user_emails={comma-separated,url-encoded,emails}
  • Header (erforderlich): X-API-Key: <DEQUE_API_KEY>, Accept: application/json

Übergeben Sie die E-Mail-Adressen der zu entfernenden Benutzer als kommagetrennte Liste in einem einzigen user_emails Query-Parameter und URL-kodieren Sie den Wert. Zum Beispiel kommt ein nicht kodiertes Literal + in einer Adresse als Leerzeichen an und wird als fehlerhaft abgelehnt. Es gibt keinen Anfrageinhalt. Das Entfernen eines Benutzers, der kein Mitglied ist, ist erfolgreich und entfernt nichts, sodass eine wiederholte Anfrage kein Fehler ist. Ein Projekt muss immer mindestens einen admin behalten. Die API lehnt eine Anfrage ab, die den letzten Admin des Projekts entfernt. Ein allein verbleibendes Mitglied, das der einzige Admin des Projekts ist, kann sich nicht selbst entfernen.

Eine erfolgreiche Anfrage gibt 200 OK mit den Adressen zurück, die entfernt wurden, und denen, die keinem Mitglied entsprachen, sodass Sie einen Tippfehler von einer vollendeten Entfernung unterscheiden können:

{
  "deleted": true,
  "removed": ["sam@example.com"],
  "unmatched": ["alx@example.com"]
}

Fehlermeldungen zur Projektmitgliedschaft

Status Ursache
400 Bad Request project_id ist keine gültige UUID, user_email_role_pairs fehlt oder ist fehlerhaft, eine user_email ist keine gültige E-Mail-Adresse oder derselbe Benutzer erscheint mehrmals. Es umfasst auch eine role, die nicht admin oder member ist, oder einen user_emails-Wert, der fehlt, als separate Parameter wiederholt wird oder fehlerhaft bei der Entfernen-Anfrage ist. Bei der Hinzufügen-Anfrage umfasst es eine E-Mail-Adresse, die nicht zu Ihrer Organisation gehört. Bei der Rollenänderungsanfrage umfasst es eine E-Mail-Adresse, die nicht zu einem Projektmitglied gehört. Bei jeder Schreibanfrage umfasst es eine E-Mail-Adresse, die mit mehr als einem Benutzer übereinstimmt; die API lehnt sie ab, anstatt eine Änderung an der falschen Person zu riskieren.
401 Unauthorized Der API-Schlüssel ist ungültig, fehlt oder das zugehörige Abonnement ist inaktiv.
403 Forbidden Sie sind weder ein Projektadmin noch ein Organisationsadmin. Es umfasst auch eine Änderung, die das Projekt ohne Admin zurücklässt, oder ein allein verbleibendes Mitglied, das versucht, seine eigene Mitgliedschaft zu ändern oder zu entfernen.
404 Not Found Es existiert kein Projekt mit dieser ID oder das Projekt wurde gelöscht.