通过Oracle Cloud的GraphQL,获取Oracle Content Management的数据
首先
Oracle Content Management(以下OCMと呼ぶ)は、云原生的内容管理平台。通过提供强大的协作、工作流管理、机器学习自动标记和创作推荐,实现缩短内容创作时间、降低搜索成本和加强企业治理。开发者可以使用即可用的模板快速构建内容丰富的网站,也可以将内容提供给现有的Web、移动、数字助理渠道和企业应用,以提供与营销活动相关的高度相关的客户体验。
本文将介绍如何使用GraphQL获取Oracle内容管理系统中的数据。
GraphQL是一种查询语言。
在Qiita上有很多有用的文章,我在这里挑选了两篇,请先确认一下。
GraphQL是一种用于WEB API的查询语言,它是一个运行时(在执行时需要的东西),用于执行查询(获取数据的指令)来访问现有数据。
与REST API不同,GraphQL只有一个端点,不需要为每个处理操作增加新的端点,因此更易于管理,这是它的主要特点。
以下是一种本土化的中文释义:
这是API的一种“模式”。
这是Facebook在2015年发布的相对较新的API模式。
其特点包括:
只有一个端点
可以对交互数据进行类型检查
支持实时通信
请同时查看GraphQL的官方网站。
1. 准备好
在事前准备阶段,需要创建OCM实例、定义资产存储库以及注册和发布资产。请参考以下教程进行准备。
-
- 创建Oracle Content and Experience实例
- 尝试使用Oracle Content and Experience作为无界面内容管理系统【初级指南】
另外,GraphQL也可在Oracle Content Management- Starter Edition中使用。创建Starter Edition环境,请参考以下的文章。
请确认GraphQL的模式
在中国,OCM支持所有公开的内容和所有资产类型的GraphQL。开发人员可以查看架构,创建查询,并从客户端调用它与其他交付API一起使用。
OCM包含了GraphQL IDE。URL如下所示。
https://<OCMインスタンスのURL>/content/published/api/v1.1/graphql/explorer
点击右上角的<Docs>会显示文档浏览器。从这里,您可以搜索资产类型并查看模式。
用GraphQL试试看。
使用GraphQL来获取数据。可以通过GraphQL获取的数据是已经注册在OCM资产存储库中的公开资产。不符合此条件的资产(例如:未公开的资产)无法通过GraphQL获取。
确认可以使用sampleNewsType获取的数据
我们将使用在“使用Oracle Content and Experience作为Headless CMS【初级教程】”中创建的sampleNewsType内容类型。
3.2 通过 GraphQL 获取数据
使用getSampleNewsType查询,我们将获取之前步骤中确认的模式定义(sampleNewsType)的数据。在使用GraphQL获取数据时,需要获取资产的id(或slug)和公开频道的频道令牌(channelToken)。
3.2.1 确认资产ID和频道令牌。
打开OCE的WebUI,查看已发布内容项sample news content 001的资产ID和已发布的sampleChannel的频道令牌。
使用GraphQL获取数据
通过使用资产ID和通道令牌,获取sampleNewsType的数据。获取时使用的查询是getSampleNewsType()。执行示例如下:
{
getSampleNewsType
(
id: "CORE5FD129FC39DD4F3097FC1223469BD7A7",
channelToken: "1baae0944c004a7b90f203f962b6453e")
{
id
name
slug
}
}
获取包含属性信息的数据。
获取 sampleNewsType 的属性信息。在获取属性信息时,将希望获取的属性添加到 fields 中。在这里,我们添加 title 和 body 到 fields 中。
{
getSampleNewsType
(
id: "CORE5FD129FC39DD4F3097FC1223469BD7A7",
channelToken: "1baae0944c004a7b90f203f962b6453e")
{
id
name
slug
fields
{
title
body
}
}
}
获得包含参照资产(图像资产)的属性信息。
sampleNewsType的image属性是指向注册为数字资产类型为Image的数字资产。在这里,我们将解释如何通过一次查询获取参考资产的数据。
如果想要获取与图像属性中注册的数字资产的链接,请按照以下方式指定。
{
getSampleNewsType
(
id: "CORE5FD129FC39DD4F3097FC1223469BD7A7",
channelToken: "1baae0944c004a7b90f203f962b6453e")
{
id
name
slug
fields
{
title
body
image
{
id
name
fields
{
file
{
url
}
}
}
}
}
}
获取包含图像资产渲染的属性信息。
当您将JPEG等图片文件注册到OCM存储库时,将自动生成Large/Medium/Small/Thumbnail的渲染版本。
要获取特定数字资产的渲染版本(此处为缩略图),请按以下方式执行。
{
getSampleNewsType
(
id: "CORE5FD129FC39DD4F3097FC1223469BD7A7",
channelToken: "1baae0944c004a7b90f203f962b6453e")
{
id
name
slug
fields
{
title
body
image
{
id
name
fields
{
rendition(name:"Thumbnail", format:"jpg")
{
file
{
url
}
}
}
}
}
}
}
4. 总结
在这篇文章中,我们介绍了如何使用GraphQL获取Oracle内容管理的数据。我们确认了只需要获取所需数据的简单性。
另外,在下面的产品文档中有详细说明。希望您能确认一下。
- GraphQL Support in Oracle Content Management
(参考)OCM的产品文档
-
- Oracle Content Management 製品ドキュメント(英語)
Oracle Content Management 製品ドキュメント(日本語翻訳版)
製品ドキュメントの英語原本と日本語翻訳版です。翻訳されるまでに時差がありますので、最新情報の確認は 英語版のドキュメントをご利用ください