Rest 我想现在从api下载所有来自服务的报告,而不提报告id?
Rest 我想现在从api下载所有来自服务的报告,而不提报告id?,rest,servicenow,servicenow-rest-api,Rest,Servicenow,Servicenow Rest Api,此URL将只下载提到id的报告,而不提及报告id。\u如何获取所有报告?这是一些粗略的nodejs代码,但应该让您开始 var https = require('https'); var username = ''; var password = ''; var url = 'dev32369.service-now.com'; var auth = 'Basic ' + new Buffer(username + ':' + password).toString('base64'); http
此URL将只下载提到id的报告,而不提及报告id。\u如何获取所有报告?这是一些粗略的nodejs代码,但应该让您开始
var https = require('https');
var username = '';
var password = '';
var url = 'dev32369.service-now.com';
var auth = 'Basic ' + new Buffer(username + ':' + password).toString('base64');
https.request({
host: url,
port: 443,
path: '/api/now/table/sys_report?sysparm_query=field_listISNOTEMPTY&sysparm_fields=sys_id,title,filter,field,table,field_list&sysparm_limit=2',
method: 'GET',
headers: {
'Authorization': auth,
'Accept': 'application/json',
'Content-Type': 'application/json'
}
}, function (reportResponse) {
console.log('STATUS: ' + reportResponse.statusCode);
// console.log('HEADERS: ' + JSON.stringify(res.headers));
var reportResponseBody = '';
reportResponse.setEncoding('utf8');
reportResponse.on('data', function (chunk) {
reportResponseBody += chunk;
// console.log('BODY: ' + chunk);
});
reportResponse.on('end', function () {
var reports = JSON.parse(reportResponseBody).result;
console.log(reports);
if (reports[0].field_list != '') {
for (var x = 0; x < reports.length; x++) {
var report = reports[x];
var path = '';
path += '/api/now/table/' + report.table;
path += '?sysparm_fields=' + report.field_list;
path += '&sysparm_query=' + encodeURIComponent(report.filter);
path += '&sysparm_display_value=true';
path += '&sysparm_exclude_reference_link=true';
// path += '&sysparm_limit=2';
console.log(path);
var optionsCSV = {
host: url,
port: 443,
path: path,
method: 'GET',
headers: {
'Authorization': auth,
'Accept': 'application/json',
'Content-Type': 'application/json'
}
};
console.log(optionsCSV);
https.request(optionsCSV, function (csvResponse) {
try {
var csvResponseBody = '';
csvResponse.on('data', function (chunk) {
console.log('downloading report[' + report.title + ']...');
csvResponseBody += chunk;
});
csvResponse.on('end', function () {
//console.log(csvResponseBody);
var csvResponseObj = JSON.parse(csvResponseBody).result;
console.log(csvResponseObj);
//this is a json obj but you can rewriet is csv here
});
csvResponse.on('error', function (err) {
console.log(err);
});
} catch (e) {
console.log(e);
}
}).end();
}
}
});
}).end();
var https=require('https');
var用户名=“”;
var密码=“”;
var url='dev32369.service now.com';
var auth='Basic'+新缓冲区(用户名+':'+密码).toString('base64');
https.request({
主持人:url,,
港口:443,
路径:'/api/now/table/sys\u report?sysparm\u query=field\u listISNOTEMPTY&sysparm\u fields=sys\u id、title、filter、field、table、field\u list&sysparm\u limit=2',
方法:“GET”,
标题:{
“授权”:auth,
“接受”:“应用程序/json”,
“内容类型”:“应用程序/json”
}
},函数(reportResponse){
console.log('STATUS:'+reportResponse.statusCode);
//log('HEADERS:'+JSON.stringify(res.HEADERS));
var reportResponseBody='';
reportResponse.setEncoding('utf8');
reportResponse.on('data',函数(区块){
reportResponseBody+=chunk;
//log('BODY:'+chunk);
});
reportResponse.on('end',function(){
var reports=JSON.parse(reportResponseBody).result;
控制台日志(报告);
如果(报告[0]。字段列表!=''){
对于(var x=0;x
用某种语言编写一些代码以进行连续调用?$user=“xxxx”$Pwd=ConvertTo SecureString'xxxxxx'-AsPlainText-Force$cred=New Object System.Management.Automation.PSCredential($user,$Pwd)$query=”“Invoke RestMethod-uri$query-Credential$cred-OutFile“path.csv”我有一个powershell脚本,它工作得很好,但每次我都需要将report_id放入$query中。取而代之的是,有任何URL可以同时获取所有报告吗?我不知道。