L’API Cartelle di AEM restituisce HTTP 200 invece di HTTP 409 per le cartelle esistenti
L’API delle cartelle di Adobe Experience Manager as a Cloud Service (AEMaaCS) restituisce HTTP 200 OK quando una richiesta di creazione di cartelle viene indirizzata a una cartella esistente. Una modifica recente fornisce i dettagli del conflitto nel payload di risposta invece di restituire HTTP 409 Conflict, che può interessare le integrazioni che si basano solo sul codice di stato HTTP. Per risolvere il problema, valuta l’array degli errori nel payload di risposta e tratta le voci in conflitto come operazioni di creazione della cartella non riuscite.
Descrizione description
Ambiente
Adobe Experience Manager as a Cloud Service (AEMaaCS), tutte le versioni
Problema/Sintomi
-
Quando si utilizza l’API AEM Folders per creare una cartella già esistente, l’API restituisce un codice di stato HTTP 200 OK.
-
Il payload di risposta contiene un errore di conflitto invece di restituire un codice di stato HTTP 409 Conflict come documentato in precedenza.
-
Endpoint di esempio:
POST /adobe/folders -
Richiesta di esempio: invia una richiesta
POSTa/adobe/folderscon un corpo JSON che specifica il percorso e il titolo della cartella. -
Esempio di risposta effettiva:
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": [ ] }
Causa principale
Una modifica recente nel comportamento dell’API delle cartelle restituisce HTTP 200 OK per i conflitti di creazione della cartella e fornisce i dettagli del conflitto nel payload di risposta anziché restituire il codice di stato HTTP 409 Conflict. Questa modifica potrebbe non essere ancora visibile nella documentazione pubblica.
Risoluzione resolution
Per risolvere il problema, segui i passaggi seguenti:
- Per aggiornamenti sulla gestione dei conflitti, consulta la documentazione più recente sull’API delle cartelle.
- Aggiorna la logica di integrazione per valutare sia il codice di stato HTTP che il payload di risposta durante la determinazione del risultato di una richiesta di creazione di cartelle.
- Controllare l’array
errorsnel payload di risposta per le voci contypeimpostato suhttps://api.adobeaemcloud.com/adobe/meta/errors/conflict. - Se la risposta contiene questa voce, considera l’operazione come un conflitto, indipendentemente dal codice di stato HTTP.
- Se il flusso di lavoro richiede una gestione rigorosa del codice di stato HTTP, implementa una logica aggiuntiva per analizzare il corpo della risposta per i dettagli dell’errore.
- Monitora la documentazione API e le note sulla versione per aggiornamenti o modifiche al contratto per le risposte ai conflitti.
- Tentativo di creare una cartella già esistente. Verificare che il payload di risposta contenga un errore di conflitto nell’array
errors, anche quando il codice di stato HTTP è 200.