Skip to main content

JavaScript API Tutorials

Tutorial Home

Use the sxc query(...) API to get Queries in JS

This page uses the sxc data API to query data from the backend using parameters and display it in a table with JavaScript.
In this tutorial you'll learn how to:

  • Create a $2sxc object using the current Module Id
  • Create a Query service using the .query(...).
  • Add Parameters to the .getAll(...), .getStream(...) and .getStreams(...) query methods through object or string

Note that this sample will run the query AuthorsWithBooks.

Source Code of this file

Below you'll see the source code of the file. Note that we're just showing the main part, and hiding some parts of the file which are not relevant for understanding the essentials. Click to expand the code

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Source Code of _230-query-parameters.js

Below you'll see the source code of the file. Note that we're just showing the main part, and hiding some parts of the file which are not relevant for understanding the essentials. Click to expand the code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
window.tutQueryParameters = {
querySvc: null,
demoAuthorId: 0,
init: function({ moduleId, demoAuthorId }) {
// Create a $2sxc object using the current Module Id
const sxc = $2sxc(moduleId);
this.querySvc = sxc.query('AuthorsWithBooks');
this.demoAuthorId = demoAuthorId;
// Attach click-handlers to button
document.getElementById(`mod-${moduleId}-object`).onclick = () => this.queryWithObjectParams();
document.getElementById(`mod-${moduleId}-string`).onclick = () => this.queryWithStringParams();
document.getElementById(`mod-${moduleId}-stream-params`).onclick = () => this.queryStreamWithParams();
document.getElementById(`mod-${moduleId}-streams-params`).onclick = () => this.queryStreamsWithParams();
},
queryWithObjectParams: function() {
const queryParameters = {
authorId: this.demoAuthorId,
authorPageResults: 2,
currentAuthorPage: 1
};
this.querySvc.getAll(queryParameters).then(data => {
console.log("Get query with passing url parameters as object", data);
alert('Got all - see console for details. \n \n' + JSON.stringify(data, null, 2));
});
},
queryWithStringParams: function() {
// For passing parameters as a string it's important to use the default query string structure (key=value seperated by a &)
// See: https://en.wikipedia.org/wiki/Query_string#Structure
const stringWithParameters = `authorId=${this.demoAuthorId}&authorPageResults=2&currentAuthorPage=1`;
this.querySvc.getAll(stringWithParameters).then(data => {
console.log("Get query with passing url parameters as string", data);
alert('Got all - see console for details. \n \n' + JSON.stringify(data, null, 2));
});
},
queryStreamWithParams: function() {
const queryParameters = {
authorId: this.demoAuthorId
};
this.querySvc.getStream('Current', queryParameters).then(data => {
console.log("Get Query stream with passing url parameter", data);
alert('Got all - see console for details. \n \n' + JSON.stringify(data, null, 2));
});
},
queryStreamsWithParams: function() {
const queryParameters = {
authorId: this.demoAuthorId,
authorPageResults: 2,
currentAuthorPage: 1
};
this.querySvc.getStreams('Current,AuthorsByPage', queryParameters).then(data => {
console.log("Get query streams with passing url parameter", data);
alert('Got all - see console for details. \n \n' + JSON.stringify(data, null, 2));
});
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX