AEM headless SDK
De AEM Headless SDK is een verzameling bibliotheken die door clients kunnen worden gebruikt om via HTTP snel en eenvoudig te communiceren met AEM Headless API's.
De AEM Headless SDK is beschikbaar voor verschillende platforms:
Blijvende GraphQL-query's
Het vragen van AEM het gebruiken van GraphQL die voortgeduurde vragen (in tegenstelling tot cliënt-bepaalde vragen van GraphQL) gebruiken staat ontwikkelaars toe om een vraag (maar niet zijn resultaten) in AEM voort te zetten, en dan de vraag te verzoeken om door naam worden uitgevoerd. De aangehouden vragen zijn gelijkaardig aan het concept opgeslagen procedures in SQL gegevensbestanden.
Persisted query's zijn krachtiger dan door de client gedefinieerde GraphQL query's, aangezien persisted query's worden uitgevoerd met HTTP-GET, die in cache kunnen worden opgeslagen op de CDN- en AEM Dispatcher-lagen. Blijvende query's zijn ook van kracht, definiëren een API en ontkoppelen de noodzaak voor de ontwikkelaar om de details van elk Content Fragment Model te begrijpen.
Codevoorbeelden persisted-graphql-queries-code-examples
Hieronder volgen voorbeelden van code voor het uitvoeren van een GraphQL-query die wordt uitgevoerd tegen AEM.
Installeer @adobe/aem-headless-client-jsdoor het npm install
bevel van de wortel van uw project van Node.js in werking te stellen.
code language-none |
---|
|
Dit codevoorbeeld toont hoe te om AEM te vragen gebruikend @adobe/aem-headless-cliënt-jsnpm module gebruikend async/await
syntaxis. De AEM Zwaartepunt SDK voor JavaScript steunt ook Promise syntaxis.
Deze code gaat ervan uit dat er een voortgezette query met de naam wknd/adventureNames
is gemaakt op AEM auteur en gepubliceerd naar AEM Publish.
code language-javascript |
---|
|
Installeer @adobe/aem-headless-cliënt-jsdoor het npm install
bevel van de wortel van uw React project in werking te stellen.
code language-none |
---|
|
Dit codevoorbeeld toont hoe te om React useEffect (…) te gebruiken haakom een asynchrone vraag aan AEM GraphQL uit te voeren.
Het gebruik van useEffect
om de asynchrone GraphQL-aanroep in React te maken is nuttig omdat:
- Het verstrekt synchrone omslag voor de asynchrone vraag aan AEM.
- Het vermindert onnodig AEM.
Deze code gaat ervan uit dat er een voortgezette query met de naam wknd-shared/adventure-by-slug
is gemaakt op AEM auteur en gepubliceerd naar AEM Publish met behulp van GraphiQL.
code language-javascript |
---|
|
Roep de aangepaste React useEffect
-haak aan vanaf een andere locatie in een React-component.
code language-javascript |
---|
|
U kunt nieuwe useEffect
haken maken voor elke doorlopende query die de React-app gebruikt.
GraphQL-query's
AEM steunt cliënt-bepaalde vragen van GraphQL, nochtans is het AEM beste praktijken om voortgeduurde vragen van GraphQLte gebruiken.
Webpack 5+
De AEM Headless JS SDK heeft afhankelijkheden van util
die standaard niet in Webpack 5+ is opgenomen. Als u Webpack 5+ gebruikt, en de volgende fout ontvangt:
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 }
Voeg het volgende devDependencies
toe aan het package.json
-bestand:
"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"
},
Voer vervolgens npm install
uit om de afhankelijkheden te installeren.