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
Genom att fråga AEM använda GraphQL med beständiga frågor (till skillnad från klientdefinierade GraphQL-frågor) kan utvecklare behålla en fråga (men inte dess resultat) i AEM, och sedan begära att frågan körs 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 kommandot npm install
från roten för 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-modulen med syntaxen async/await
. AEM Headless SDK för JavaScript har även stöd för Promise-syntax.
Den här koden antar att en beständig fråga med namnet wknd/adventureNames
har skapats AEM författaren och publicerats till AEM Publish.
code language-javascript |
---|
|
Installera @adobe/aem-headless-client-js genom att köra kommandot npm install
från roten för React-projektet.
code language-none |
---|
|
I det här kodexemplet visas hur du använder React useEffect(…) krok för att köra ett asynkront anrop till AEM GraphQL.
Att använda useEffect
för att göra det asynkrona GraphQL-anropet i React är användbart eftersom:
- Den tillhandahåller synkron wrapper för det asynkrona anropet till AEM.
- Det minskar behovet av AEM.
Koden förutsätter att en beständig fråga med namnet wknd-shared/adventure-by-slug
har skapats på AEM författare och publicerats till AEM Publish med GraphiQL.
code language-javascript |
---|
|
Anropa den anpassade useEffect
-kroken från någon annan plats i en React-komponent.
code language-javascript |
---|
|
Nya useEffect
-kopplingar kan skapas 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+
Den AEM Headless JS SDK har beroenden 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
i din 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 beroendena.