L’API AEM Folders renvoie un HTTP 200 au lieu du HTTP 409 pour les dossiers existants

L’API Dossiers d’Adobe Experience Manager as a Cloud Service (AEMaaCS) renvoie la valeur HTTP 200 OK lorsqu’une demande de création de dossier cible un dossier existant. Une modification récente fournit les détails du conflit dans la payload de réponse au lieu de renvoyer le Conflit HTTP 409, ce qui peut affecter les intégrations qui reposent uniquement sur le code d’état HTTP. Pour résoudre ce problème, évaluez le tableau d’erreurs dans la payload de réponse et traitez les entrées en conflit comme des opérations de création de dossier ayant échoué.

Description description

Environnement

Adobe Experience Manager as a Cloud Service (AEMaaCS), toutes les versions

Problème/Symptômes

  • Lorsque vous utilisez l’API AEM Folders pour créer un dossier qui existe déjà, l’API renvoie un code d’état HTTP 200 OK.

  • La payload de réponse contient une erreur de conflit au lieu de renvoyer un code d’état Conflit HTTP 409 comme documenté précédemment.

  • Exemple de point d’entrée : POST /adobe/folders

  • Exemple de requête : envoyez une requête POST à /adobe/folders avec un corps JSON qui spécifie le chemin et le titre du dossier.

  • Exemple de réponse réelle :

    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": [ ]
    }
    

Cause première

Une modification récente du comportement de l’API Folders renvoie HTTP 200 OK pour les conflits de création de dossiers et fournit les détails du conflit dans le payload de réponse au lieu de renvoyer un code d’état HTTP 409 Conflict. Il se peut que cette modification n’apparaisse pas encore dans la documentation publique.

Résolution resolution

Suivez les étapes ci-dessous pour résoudre le problème :

  1. Consultez la dernière documentation de l’API Folders pour obtenir des mises à jour sur la gestion des conflits.
  2. Mettez à jour la logique d’intégration pour évaluer le code d’état HTTP et la payload de réponse lors de la détermination du résultat d’une requête de création de dossier.
  3. Vérifiez le tableau errors dans la payload de réponse pour les entrées dont le type est défini sur https://api.adobeaemcloud.com/adobe/meta/errors/conflict.
  4. Si la réponse contient cette entrée, traitez l’opération comme un conflit, quel que soit le code d’état HTTP.
  5. Si le workflow nécessite une gestion stricte du code d’état HTTP, implémentez une logique supplémentaire pour analyser le corps de la réponse pour obtenir les détails de l’erreur.
  6. Surveillez la documentation de l’API et les notes de mise à jour pour prendre connaissance des mises à jour ou des modifications apportées au contrat pour les réponses en cas de conflit.
  7. Essayez de créer un dossier qui existe déjà. Vérifiez que la payload de réponse contient une erreur de conflit dans le tableau errors, même lorsque le code d’état HTTP est 200.
recommendation-more-help
experience-cloud-kcs-help-kbarticles