@adobe/aem-headless-client-nodejs
v2.0.0
Published
AEM Headless SDK Client NodeJS
Downloads
11,221
Maintainers
Keywords
Readme
AEM Headless Client for NodeJS
See aem-headless-client-java for the Java variant of this client and aem-headless-client-js for the client-side Browser only variant.
Installation
$ npm install @adobe/aem-headless-client-nodejs
Usage
Create AEMHeadless client
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]
})
Use AEMHeadless client
Promise syntax:
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()))
Within async/await:
(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())
}
})()
Fetch instance
Check https://github.com/adobe/aio-lib-core-networking for advanced usage and default settings
Authorization
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
DEV token and service credentials
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)
})()
API Reference
See generated API Reference
Contributing
Contributions are welcome! Read the Contributing Guide for more information.
Licensing
This project is licensed under the Apache V2 License. See LICENSE for more information.