Skillnader i GraphQL svarsstruktur och markeringar i Adobe Experience Manager

Efter uppgradering till AEM 6.5.23+ eller 6.5 LTS observeras skillnader i strukturen för GraphQL-svar för innehållsfragment och i formatering av markeringar jämfört med tidigare versioner, som AEM 6.5.20. De här ändringarna påverkar hur tomma objekt hanteras i unionsfrågor och hur mellanrum återges i markeringsfält. Åtgärda problemet genom att hantera tomma objekt i svar, justera bearbetningen av markeringar och följa konsekvent beständig frågekodning.

Beskrivning description

Miljö

  • Produkt: Adobe Experience Manager (AEM) Managed Services, AEM Sites
  • Version: 6.5.23+/ 6.5 LTS (inklusive SP1/SP2), referens till föregående version: 6.5.20

Problem och symtom

  • I GraphQL-svar returnerar AEM 6.5.23+ och 6.5 LTS tomma JSON-objekt för poster när en fragmentreferens för flera fält innehåller innehållsfragment som inte matchar någon av de tillåtna modellerna i frågan, medan tidigare versioner utelämnar dem helt.
  • Markeringsutdata från RTF-fält visar skillnader i blankstegshantering, t.ex. ytterligare blanksteg eller tomma rader mellan stycken eller block.
  • Den beständiga frågeslutpunkten i AEM 6.5.23+ och 6.5 LTS tolererar mer okodade specialtecken, men kräver ändå URL-kodning för konsekvent beteende.

Upplösning resolution

Följ de här stegen för att åtgärda problemet:

  1. Hantera tomma JSON-objekt som returneras av unionsfrågor:

    • Filtrera ut tomma objekt (objekt utan egenskaper) på klientsidan när GraphQL-svaret bearbetas.
    • Du kan även uppdatera den beständiga frågan så att den innehåller fragment för alla möjliga refererade modeller för att säkerställa att relevanta data returneras för varje typ.
  2. Skillnader i Markdown Whitespace och formatering:

    • Om det är viktigt med exakt tomt utrymme eller formatering kan du använda HTML- eller JSON-representationen av fältet i stället för Markdown.
    • Du kan även normalisera tomt utrymme under efterbearbetningen genom att komprimera upprepade mellanslag eller tomma rader innan återgivningen.
  3. Kodning av beständiga frågor:

    • URL-koda alltid specialtecken, som semikolon, mellanslag och kolon, i beständiga frågesuffix och variabler enligt dokumenterade mönster.
    • Förlita dig inte på den ökade toleransen för okodade tecken som introducerats i senare versioner, eftersom detta inte garanteras i framtida uppdateringar.
  4. Verifiera att:

    • Klientprogrammet filtrerar bort tomma objekt från GraphQL-svar, om det behövs.
    • Återgivet innehåll visas som förväntat efter att normaliseringssteg har tillämpats på Markdown-utdata.
    • Beständiga frågor fungerar på ett enhetligt sätt i olika miljöer genom att följa kodningskraven.

Anteckningar

  • De beskrivna beteendena förväntas bero på avsiktliga ändringar som införts i AEM 6.5.23+ / 6.5 LTS och den uppdaterade GraphQL-motorn.
  • Semantisk konsistens (korrekt struktur och innehåll) upprätthålls. Men det går inte att garantera exakt samma markeringsutdata för olika versioner.
  • Om semantiska problem, t.ex. saknat innehåll eller felaktig struktur, observeras, kan ytterligare undersökningar krävas, eftersom dessa kan tyda på defekter i stället för förväntade beteendeförändringar.

Relaterad läsning

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f