Да, инструкция, прямо скажем, не для новичков там. Рекомендую курить доки по REST сначала. Тогда станет понятно, что имел ввиду автор.
Вот пример печати отчета на JS, надеюсь, поможет прояснить ситуацию. Я давно с этим баловался, проверить сейчас нет возможности, но у меня работало. Главное - без авторизации вам токен не дадут. Да, этот код только для теста
// JMIX request report
function sendRest() {
var reqRepJSON, authReq;
// Авторизация
authReq = `grant_type=password&username=User&password=UserPassword`;
authURL = 'http://host:8080/oauth/token?' + authReq;
var resphttp = new XMLHttpRequest();
resphttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
console.log('REST auth request: readyState == 4 && this.status == 200 ' );
}
};
resphttp.open("POST", authURL, false);
resphttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
resphttp.setRequestHeader("Authorization", "Basic " + window.btoa('RestClient:RestClientPassword') );
resphttp.send(authReq);
var authResp = JSON.parse(resphttp.responseText);
var authToken = authResp['access_token'];
var authRefrToken = authResp['refresh_token'];
console.log('REST resonse: ' + authToken);
//Запрос отчета
repURL = 'http://host:8080/rest/reports/run/report-id';
/* Пример запроса шаблона отчета с параметрами
reqRepJSON = `{template: 'Template_1',
parameters: [{name: 'author',value: '4b3a21b0-d6b7-4161-b0b6-55f118fbaac5'}]`;
*/
reqRepJSON = `{template:CHART,
parameters: [{}]}`;
fetch(repURL, {
method: 'POST',
body: reqRepJSON,
headers: {
'Content-Type': 'application/json',
'Authorization': "bearer " + authToken
},
}).then(function(resp) {
// console.log('REST resonse: ' + resp);
return resp.blob();
}).then(function(blob) {
// console.log('REST resonse blob: ' + blob);
return saveBlob(blob, "CUSTOM_NAME.xls");
});
}
Вот эту часть инструкции выполнить надо еще обязательно:
The simplest way to register a client is to add standard Spring Authorization Server application properties
И еще вот эта настройка полезная:
jmix.cors.allowed-origins - прописать с каких хостов принимать заросы