JavaScript 的 AEM 无头客户端
见 无头客户-贾瓦 用于此客户端的 Java 变体 财务报告和审定财务报表 无头客户-节点 用于服务器侧节点.js变体.
安装
$ npm install @adobe/aem-headless-client-js
使用量
创建无头客户端
const AEMHeadless = require('@adobe/aem-headless-client-js');
用主机和 Auth 数据配置 SDK (如果需要)
const aemHeadlessClient = new AEMHeadless({
serviceURL: '<aem_host>',
endpoint: '<graphql_endpoint>',
auth: '<aem_token>' || ['<aem_user>', '<aem_pass>'],
headers: {'<headername>': '<headervalue>', ...}
})
// Eg:
const aemHeadlessClient = new AEMHeadless({
serviceURL: AEM_HOST_URI,
endpoint: 'content/graphql/endpoint.gql',
auth: [AEM_USER, AEM_PASS],
headers: {'customerheadername': 'customerheadervalue'}
})
使用无头客户端
承诺语法 :
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()))
aemHeadlessClient.runPersistedQuery('wknd/persist-query-name-with-variables', { name: 'John Doe'})
.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())
}
})()
铺设 :
(async () => {
const model = 'article'
const fields = `{
title
_path
authorFragment {
firstName
profilePicture {
...on ImageRef {
_authorUrl
}
}
}
}`
// Loop all pages (default Cursor based)
const cursorQueryAll = await aemHeadlessClient.runPaginatedQuery(model, fields, { pageSize: 3 })
for await (let value of cursorQueryAll) {
console.log('cursorQueryAll', value)
}
// Manually get next page (default pageSize = 10)
const cursorQuery = await aemHeadlessClient.runPaginatedQuery(model, fields)
while (true) {
const { done, value } = await cursorQuery.next();
if (done) break
console.log('cursorQuery', value)
}
})()
授权
若为 auth param是一个字符串,它被当作是"熊"的代号
若为 auth param 是一个数组,预期数据为 ['user','pass'] 对等,并将使用 Basic Authority
若为 auth 未定义, 授权信头将不会设置
API 参考
见生成 API 参考
捐款
欢迎捐款! 读取 贡献指南 更多信息.
许可证发放
这个项目根据Apache V2许可证获得许可. 见 自由主义 更多信息.