如何使用GET方法访问RESTlet SuiteScript参数

时间:2015-05-22 04:45:39

标签: javascript rest restlet netsuite

我遇到了一个问题,可能会有很多新的SuiteScript 黑客

正如official doc of SuiteScript p所写。 243,这个JS用于使用GET方法检索记录。

// Get a standard NetSuite record
function getRecord(datain) {
    return nlapiLoadRecord(datain.recordtype, datain.id); // e.g recordtype="customer", id="769"
}

//  http://rest.na1.netsuite.com/app/site/hosting/restlet.nl?script=22&deploy=1&recordtype=customer&id=769

但是,当我在NetSuite端尝试 EXACT 代码段时,datain.recordtype未定义。 (并且返回应该只返回文本,BTW。)

幸运的是,我自己找到了解决方案。检查下面的答案。

1 个答案:

答案 0 :(得分:3)

在这个片段中(与上面相同)......

function getRecord(datain) {
    return nlapiLoadRecord(datain.recordtype, datain.id); // e.g recordtype="customer", id="769"
}

//  http://rest.na1.netsuite.com/app/site/hosting/restlet.nl?script=22&deploy=1&recordtype=customer&id=769

-

SuiteScript填充datain不是作为对象,也不是JSON,而是作为字符串(原因我仍然忽略。)

您必须执行此操作之前只需解析,然后使用点表示法访问JSON。

function getRecord(datain) {
    var data = JSON.parse(datain); // <- this
    return "This record is a " + data.recordtype + " and the ID is " + data.id;
}

//  http://rest.na1.netsuite.com/app/site/hosting/restlet.nl?script=22&deploy=1&recordtype=customer&id=769

我已经更改了解决方案中的return语句,因为当我尝试返回不是文本的东西时,SuiteScript会给我错误。

OR

正如egrubaugh360所述,在您的查询脚本(调用您的SuiteScript脚本的人)上指定Content-Typeapplication/json

如果您像我一样处理Node.js,那么它会给出类似的东西:

var options = {
    headers: {
        'Authorization': "<insert your NLAuth Authentification method here>",
        "Content-Type" : "application/json" // <- this
    }
}

https.request(options, function(results) {
    // do something with results.
}

希望这会对某人有所帮助。