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/foldersmit 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:
- Lesen Sie die neueste Ordner-API-Dokumentation für Aktualisierungen zur Konfliktbehandlung.
- Aktualisieren Sie die Integrationslogik, um sowohl den HTTP-Status-Code als auch die Antwort-Payload auszuwerten, wenn Sie das Ergebnis einer Ordnererstellungsanfrage ermitteln.
- Überprüfen Sie das
errors-Array in der Antwort-Payload auf Einträge, beitypeaufhttps://api.adobeaemcloud.com/adobe/meta/errors/conflictgesetzt ist. - Wenn die Antwort diesen Eintrag enthält, behandeln Sie den Vorgang als Konflikt, unabhängig vom HTTP-Status-Code.
- Wenn der Workflow eine strikte Handhabung des HTTP-Status-Codes erfordert, implementieren Sie zusätzliche Logik, um den Antworttext auf Fehlerdetails zu analysieren.
- Überwachen Sie die API-Dokumentation und Versionshinweise auf Aktualisierungen oder Änderungen am Vertrag für Konfliktantworten.
- 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 "".