See aem-headless-client-java for the Java variant of this client and aem-headless-client-js for the client-side Browser only variant.
$ npm install @adobe/aem-headless-client-nodejs
const { AEMHeadless } = require('@adobe/aem-headless-client-nodejs');
Configure SDK with serviceURL and Auth data (if needed)
const aemHeadlessClient = new AEMHeadless({
serviceURL: '<aem_host>',
endpoint: '<graphql_endpoint>',
auth: '<aem_token>' || ['<aem_user>', '<aem_pass>']
})
// Eg:
const aemHeadlessClient = new AEMHeadless({
serviceURL: AEM_HOST_URI,
endpoint: 'content/graphql/endpoint.gql',
auth: [AEM_USER, AEM_PASS]
})
aemHeadlessClient.runQuery(queryString)
.then(data => console.log(data))
.catch(e => console.error(e.toJSON()))
aemHeadlessClient.listPersistedQueries()
.then(data => console.log(data))
.catch(e => console.error(e.toJSON()))
aemHeadlessClient.persistQuery(queryString, 'wknd/persist-query-name')
.then(data => console.log(data))
.catch(e => console.error(e.toJSON()))
aemHeadlessClient.runPersistedQuery('wknd/persist-query-name')
.then(data => console.log(data))
.catch(e => console.error(e.toJSON()))
(async () => {
let postData
try {
postData = await aemHeadlessClient.runQuery(queryString)
} catch (e) {
console.error(e.toJSON())
}
let list
try {
list = await aemHeadlessClient.listPersistedQueries()
} catch (e) {
console.error(e.toJSON())
}
try {
await aemHeadlessClient.persistQuery(queryString, 'wknd/persist-query-name')
} catch (e) {
console.error(e.toJSON())
}
let getData
try {
getData = await aemHeadlessClient.runPersistedQuery('wknd/persist-query-name')
} catch (e) {
console.error(e.toJSON())
}
})()
Check https://github.com/adobe/aio-lib-core-networking for advanced usage and default settings
If auth
param is a string, it's treated as a Bearer token
If auth
param is an array, expected data is ['user', 'pass'] pair, and Basic Authorization will be ued
If auth
is not defined, Authorization header will not be set
SDK contains helper function to get Auth token from credentials config file
const { getToken } = require('@adobe/aem-headless-client-nodejs')
(async () => {
const { accessToken, type, expires } = await getToken('path/to/service-config.json')
const aemHeadlessClient = new AEMHeadless('content/graphql/endpoint.gql', AEM_HOST_URI, accessToken)
const data = await aemHeadlessClient.runQuery(queryString)
})()
See generated API Reference
Contributions are welcome! Read the Contributing Guide for more information.
This project is licensed under the Apache V2 License. See LICENSE for more information.