前言
在前端开发中,我们常常需要从服务端获取数据来渲染页面,为此,一些CMS(Content Management System)提供了API供开发者使用。Kentico Cloud便是一款基于云端的CMS。
在这篇文章中,我们将介绍如何使用npm包 kentico-cloud-delivery-js-sdk-symbio来与Kentico Cloud交互。本文将详细介绍该npm包的使用方法,并提供一些示例代码。
安装
首先,我们需要安装kentico-cloud-delivery-js-sdk-symbio。可以使用npm进行安装:
npm install kentico-cloud-delivery-js-sdk-symbio
使用
- 引入npm包
在JS文件中,我们需要引入kentico-cloud-delivery-js-sdk-symbio:
const sdk = require('kentico-cloud-delivery-js-sdk-symbio');
- 创建DeliveryClient
在使用kentico-cloud-delivery-js-sdk-symbio之前,我们需要创建一个DeliveryClient对象:
const deliveryClient = new sdk.DeliveryClient({ projectId: '<project_id>', loadingTimeout: 3000 });
请将<project_id>
替换成您的项目ID。
- 获取内容
现在我们可以使用deliveryClient获取我们在Kentico Cloud CMS中创建的内容:
deliveryClient.items() .type('article') .get() .subscribe(response => { console.log(response); });
上述代码中,我们告诉deliveryClient来获取article类型的内容,然后创建一个Subscription对象,当内容返回时触发。您可以根据需要在callback中使用response对象。
深入理解
在上面的示例中,我们简单地使用DeliveryClient获取内容。下面我们将深入了解该npm包的更多细节和一些如何使用它的方法。
查询
在Kentico Cloud CMS中,内容是以Items的形式存在的。我们使用kentico-cloud-delivery-js-sdk-symbio时,我们将使用Items操作。
deliveryClient.items() // 获取Items
获取指定Item
要获取指定的Item,我们可以使用其codename或ID。
deliveryClient.item('<item_code_name>')
或者
deliveryClient.item('<item_id>')
指定类型
我们可以指定在查询中要返回的Items的类型。
deliveryClient.items() .type('article')
在上面的示例中,我们将返回类型为article
的Items。如果未指定类型,则将返回所有类型的Items。
查询字符串
我们还可以在查询中使用各种查询参数。接下来,我们将介绍其中一些参数。
limit
我们可以使用“limit”查询参数限制返回的条目数量。
deliveryClient.items() .limit(10)
在上述示例中,我们限制返回10条Items。
order
我们可以使用“order”查询参数来指定如何排序Items。以下示例将Items按发布日期排序:
deliveryClient.items() .orderParameter('elements.publish_date')
在上哪个示例中,我们使用“publish_date”元素进行排序。
offset
我们可以使用“offset”查询参数来指定起始查询的位置。以下示例从第六条Items开始查询:
deliveryClient.items() .offset(5)
注意:查询参数的完整列表可以在Kentico Cloud的API文档中查看。
Elements
在Kentico Cloud CMS中,Item由一系列字段或元素组成。
我们可以使用kentico-cloud-delivery-js-sdk-symbio获取Item中的特定元素。
-- -------------------- ---- ------- ----- -------------- - --- -------------------- ---------- --------------- ----------------- ------------- -------- -- - ------ ------------ - --- --------------------------------------- ---------------------------- -------------- --------
在此示例中,我们仅保留“title”,“description”和“date”元素。此代码行仅返回这些元素,仅这些元素将存储在response.items数组中。如果不指定此参数,则所有元素都将返回。
Taxonomy
在Kentico Cloud CMS中,Taxonomy是一组以分类方式组织的Item。
我们同样可以使用kentico-cloud-delivery-js-sdk-symbio来获取和查询taxonomy。
deliveryClient.taxonomy('tags')
在上述代码中,我们请求名为“tags”的Taxonomy。请注意,此示例中的名称不区分大小写。
Asset
在Kentico Cloud CMS中,Asset是指任何类型的媒体文件。我们可以获取和操作媒体文件。
deliveryClient.assets() .get() .subscribe(response => { console.log(response); });
在此示例中,我们返回所有Asset。如果需要,您可以添加其他查询参数,例如下面的示例:
deliveryClient.asset() .type('image') .orderParameter('size') .limit(10) .get() .subscribe(response => { console.log(response); });
上述代码中,我们将只返回“image”类型的Asset,按大小进行了排序,并限制了返回项的数量。
示例代码
获取指定Item
deliveryClient.items() .type('article') .equalsFilter('menu_link', '/home') .get() .subscribe(response => { console.log(response); });
获取所有Item
deliveryClient.items() .get() .subscribe(response => { console.log(response); });
获取指定Asset
deliveryClient.asset('9218f0ea-3e92-585d-bb44-145f4375a39d') .get() .subscribe(response => { console.log(response); });
结论
在这篇文章中,我们深入介绍了npm包kentico-cloud-delivery-js-sdk-symbio的使用方法。通过使用该npm包,您可以轻松地获取您Kentico Cloud CMS中的内容,并与之交互。
希望这篇文章对您有所帮助,希望您可以在实际应用中享受到其便利。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600672683660cf7123b365e2