Kentico Cloud Delivery SDK
A client library for retrieving content from Kentico Cloud written in TypeScript and published in following formats: UMD
, ES2015
and CommonJs
. Works both in browser & node.
Installation
You can install this library using npm
or you can use global CDNs such jsdelivr
directly. In both cases, you will also need to include rxjs
as its listed as peer dependency.
npm
npm i rxjs --save
npm i kentico-cloud-delivery --save
UMD Bundles
When using UMD bundle and including this library in script
tag on your html
page, you can find it under the kenticoCloudDelivery
global variable.
Bundles are distributed in _bundles
folder and there are several options that you can choose from.
- Use
kentico-cloud-delivery-sdk.browser.legacy.umd.min
if you need to support legacy browsers (IE9, IE10, IE11) - Use
kentico-cloud-delivery-sdk.browser.umd.min
if you intend to use SDK only in browsers (strips code specific to Node.js = smaller bundle) - Use
kentico-cloud-delivery-sdk.umd.min
if you need to use it in Node.js
CDN
kentico-cloud-delivery-sdk.browser.legacy.umd.min
https://cdn.jsdelivr.net/npm/kentico-cloud-delivery/_bundles/kentico-cloud-delivery-sdk.browser.legacy.umd.min.js
kentico-cloud-delivery-sdk.browser.umd.min
https://cdn.jsdelivr.net/npm/kentico-cloud-delivery/_bundles/kentico-cloud-delivery-sdk.browser.umd.min.js
kentico-cloud-delivery-sdk.umd.min
https://cdn.jsdelivr.net/npm/kentico-cloud-delivery/_bundles/kentico-cloud-delivery-sdk.umd.min.js
TypeScript & ES6
import {
ContentItem,
Elements,
TypeResolver,
DeliveryClient
} from 'kentico-cloud-delivery';
export class Movie extends ContentItem {
public title: Elements.TextElement;
}
const deliveryClient = new DeliveryClient({
projectId: 'xxx',
typeResolvers: [
new TypeResolver('movie', () => new Movie()),
]
});
deliveryClient.items<Movie>()
.type('movie')
.toPromise()
.then(response => {
const movieText = response.items[0].title.value;
)
});
deliveryClient.items<Movie>()
.type('movie')
.toObservable()
.subscribe(response => {
const movieText = response.items[0].title.value;
)
});
deliveryClient.items<ContentItem>()
.type('movie')
.get()
.subscribe(response => {
console.log(response.items[0].title.value);
});
JavaScript & CommonJS
const KenticoCloud = require('kentico-cloud-delivery');
class Movie extends KenticoCloud.ContentItem {
constructor() {
super();
}
}
const deliveryClient = new KenticoCloud.DeliveryClient({
projectId: 'xxx',
typeResolvers: [
new KenticoCloud.TypeResolver('movie', () => new Movie()),
]
});
deliveryClient.items()
.type('movie')
.toPromise()
.then(response => {
const movieText = response.items[0].title.value;
)
});
const subscription = deliveryClient.items()
.type('movie')
.toObservable()
.subscribe(response => {
const movieText = response.items[0].title.value;
});
subscription.unsubscribe();
deliveryClient.items()
.type('movie')
.toObservable()
.subscribe(response => console.log(response));
HTML & UMD
Bundles are distributed in _bundles
folder and there are several options that you can choose from.
- Use
kentico-cloud-delivery-sdk.browser.legacy.umd.min
if you need to support legacy browsers (IE9, IE10, IE11) - Use
kentico-cloud-delivery-sdk.browser.umd.min
if you intend to use SDK only in browsers (strips code specific to Node.js = smaller bundle) - Use
kentico-cloud-delivery-sdk.umd.min
if you need to use it in Node.js
<!DOCTYPE html>
<html>
<head>
<title>Kentico Cloud SDK - Html sample</title>
<script type="text/javascript" src="https://unpkg.com/rxjs@6.4.0/bundles/rxjs.umd.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/kentico-cloud-delivery/_bundles/kentico-cloud-delivery-sdk.browser.umd.min.js"></script>
</head>
<body>
<script type="text/javascript">
var Kc = window['kenticoCloudDelivery'];
var deliveryClient = new Kc.DeliveryClient({
projectId: 'da5abe9f-fdad-4168-97cd-b3464be2ccb9'
});
deliveryClient.items()
.type('movie')
.toPromise()
.then(response => console.log(response));
</script>
<h1>See console</h1>
</body>
</html>
Testing
Note: You need to have Chrome
installed in order to run tests via Karma.
npm run test:browser
Runs tests in Chromenpm run test:node
Runs tests in node.jsnpm run test:dev
Runs developer tests (useful for testing functionality)npm run test:travis
Runs browser tests that are executed by travis
If you want to mock http responses, it is possible to use external implementation of configurable Http Service as a part of the delivery client configuration.
Feedback & Contribution
Feedback & Contributions are welcomed. Feel free to take/start an issue & submit PR.