AEM Headless SDK
AEM Headless SDK är en uppsättning bibliotek som kunder kan använda för att snabbt och enkelt interagera med AEM Headless API:er via HTTP.
AEM Headless SDK finns för olika plattformar:
Beständiga GraphQL-frågor
Fråga AEM använda GraphQL med beständiga frågor (i motsats till klientdefinierade GraphQL-frågor) gör att utvecklare kan behålla en fråga (men inte dess resultat) i AEM och sedan begära att frågan ska köras efter namn. Beständiga frågor liknar begreppet lagrade procedurer i SQL-databaser.
Beständiga frågor är bättre än klientdefinierade GraphQL-frågor, eftersom beständiga frågor körs med HTTP GET, som kan cachelagras på CDN- och AEM Dispatcher-nivåer. Beständiga frågor är också aktiva, definiera ett API och frigör behovet av att utvecklaren förstår detaljerna för varje modell för innehållsfragment.
Exempel på koder persisted-graphql-queries-code-examples
Nedan följer kodexempel på hur du kör en GraphQL-beständig fråga mot AEM.
Installera @adobe/aem-headless-client-js genom att köra npm install
från roten i ditt Node.js-projekt.
code language-none |
---|
|
I det här kodexemplet visas hur du ställer AEM med @adobe/aem-headless-client-js npm-modul använda async/await
syntax. AEM Headless SDK för JavaScript har också stöd för Promise syntax.
Den här koden förutsätter en beständig fråga med namnet wknd/adventureNames
har skapats AEM författare och publicerats till AEM Publish.
code language-javascript |
---|
|
Installera @adobe/aem-headless-client-js genom att köra npm install
från roten i React-projektet.
code language-none |
---|
|
I det här kodexemplet visas hur du använder Reagera useEffect(…) krok för att utföra ett asynkront anrop till AEM GraphQL.
Använda useEffect
om du vill göra det asynkrona GraphQL-anropet i React användbart eftersom:
- Den tillhandahåller synkron wrapper för det asynkrona anropet till AEM.
- Det minskar behovet av AEM.
Den här koden förutsätter en beständig fråga med namnet wknd-shared/adventure-by-slug
har skapats AEM författare och publicerats till AEM Publish med GraphiQL.
code language-javascript |
---|
|
Anropa den anpassade reaktionen useEffect
krocka från andra ställen i en React-komponent.
code language-javascript |
---|
|
Nytt useEffect
Det går att skapa kopplingar för varje beständig fråga som React-appen använder.
GraphQL-frågor
AEM stöder klientdefinierade GraphQL-frågor, men det är AEM bästa sättet att använda beständiga GraphQL-frågor.
Webpack 5+
AEM Headless JS SDK är beroende av util
som inte ingår i Webpack 5+ som standard. Om du använder Webpack 5+ får du följande fel:
Compiled with problems:
× ERROR in ./node_modules/@adobe/aio-lib-core-errors/src/AioCoreSDKErrorWrapper.js 12:13-28
Module not found: Error: Can't resolve 'util' in '/Users/me/Code/wknd-headless-examples/node_modules/@adobe/aio-lib-core-errors/src'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "util": require.resolve("util/") }'
- install 'util'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "util": false }
Lägg till följande devDependencies
till package.json
fil:
"devDependencies": {
"buffer": "npm:buffer@^6.0.3",
"crypto": "npm:crypto-browserify@^3.12.0",
"http": "npm:stream-http@^3.2.0",
"https": "npm:https-browserify@^1.0.0",
"stream": "npm:stream-browserify@^3.0.0",
"util": "npm:util@^0.12.5",
"zlib": "npm:browserify-zlib@^0.2.0"
},
Kör sedan npm install
för att installera beroenden.