Die AEM Folders-API gibt für bestehende Ordner HTTP 200 anstelle von HTTP 409 zurück

Die Adobe Experience Manager as a Cloud Service (AEMaaCS) Folders-API gibt HTTP 200 OK zurück, wenn eine Ordnererstellungsanfrage auf einen vorhandenen Ordner abzielt. Eine kürzlich vorgenommene Änderung liefert die Konfliktdetails in der Antwort-Payload und nicht HTTP 409 Conflict, was sich auf Integrationen auswirken kann, die nur auf den HTTP-Status-Code angewiesen sind. Um das Problem zu beheben, werten Sie das Fehler-Array in der Antwort-Payload aus und behandeln Sie Konflikteinträge als fehlgeschlagene Vorgänge zur Ordnererstellung.

Beschreibung description

Umgebung

Adobe Experience Manager as a Cloud Service (AEMaaCS), alle Versionen

Problem/Symptome

  • Wenn Sie die AEM Folders-API verwenden, um einen bereits vorhandenen Ordner zu erstellen, gibt die API einen HTTP 200 OK-Status-Code zurück.

  • Die Antwort-Payload enthält einen Konfliktfehler, anstatt wie zuvor dokumentiert einen HTTP 409 Conflict-Status-Code zurückzugeben.

  • Beispiel-Endpunkt: POST /adobe/folders

  • Beispielanfrage: Senden Sie eine POST-Anfrage an /adobe/folders mit einem JSON-Hauptteil, der den Ordnerpfad und den Titel angibt.

  • Beispiele für die tatsächliche Antwort:

    code language-none
    {
    "operation": "adobe.folders.createFolders",
    "status": 200,
    "description": "Created folders",
    "data": {
    "values": {
    "successes": [ ]
    }
    },
    "errors": [
    {
    "type": "https://api.adobeaemcloud.com/adobe/meta/errors/conflict",
    "title": "Conflict",
    "detail": "An entity already exists at /content/dam/example/path/to/folder"
    }
    ] ,
    "warnings": [ ]
    }
    

Grundursache

Eine kürzlich vorgenommene Änderung am Verhalten der Ordner-API gibt HTTP 200 OK für Konflikte bei der Ordnererstellung zurück und gibt die Konfliktdetails in der Antwort-Payload an, anstatt einen HTTP 409 Conflict-Status-Code zurückzugeben. Diese Änderung wird möglicherweise noch nicht in der öffentlichen Dokumentation angezeigt.

Lösung resolution

Gehen Sie wie folgt vor, um das Problem zu beheben:

  1. Lesen Sie die neueste Ordner-API-Dokumentation für Aktualisierungen zur Konfliktbehandlung.
  2. Aktualisieren Sie die Integrationslogik, um sowohl den HTTP-Status-Code als auch die Antwort-Payload auszuwerten, wenn Sie das Ergebnis einer Ordnererstellungsanfrage ermitteln.
  3. Überprüfen Sie das errors-Array in der Antwort-Payload auf Einträge, bei type auf https://api.adobeaemcloud.com/adobe/meta/errors/conflict gesetzt ist.
  4. Wenn die Antwort diesen Eintrag enthält, behandeln Sie den Vorgang als Konflikt, unabhängig vom HTTP-Status-Code.
  5. Wenn der Workflow eine strikte Handhabung des HTTP-Status-Codes erfordert, implementieren Sie zusätzliche Logik, um den Antworttext auf Fehlerdetails zu analysieren.
  6. Überwachen Sie die API-Dokumentation und Versionshinweise auf Aktualisierungen oder Änderungen am Vertrag für Konfliktantworten.
  7. Es wird versucht, einen bereits vorhandenen Ordner zu erstellen. Vergewissern Sie sich, dass die Antwort-Payload einen Konfliktfehler im errors-Array enthält, auch wenn der HTTP-Status-Code "".
recommendation-more-help
experience-cloud-kcs-help-kbarticles