Arindam
Arindam

Reputation: 723

NetSuite RestLet call from SuiteLet Client

I am trying to call a RestLet webservice/URL from another SuiteScript. As i understand I need to use the http/https module to do so. But I am not able to find some example or steps to do so.

Planning to use this code in SS2.0-

var response = http.post({
url: 'https://rest.na1.netsuite.com/app/site/hosting/restlet.nl?script=601&deploy=1',
body: myDataObj, // json object
headers: headerObj // json obj
});

The below code works for me.

            var nameValue = "arin";
            var myDataObj = {
                "name" : nameValue
            };
            var myRequest = {};
            myRequest.headers = {};
            myRequest.headers["Authorization"] = 'NLAuth nlauth_account=TSTDRV158xxxx,nlauth_email=XXXX,nlauth_signature=XXXX,nlauth_role=3';
            myRequest.headers["Content-Type"] = 'application/json';
            myRequest.headers["Accept"] = '*/*';
            myRequest.url = 'https://rest.na1.netsuite.com/app/site/hosting/restlet.nl?script=601&deploy=1'; // RESTlet
                                                                                                                // URL
            myRequest.method = "POST";
            myRequest.body = JSON.stringify(myDataObj);
            // myRequest.body = myDataObj;
            var myResponse = https.post(myRequest);

And reading the response data for JSON return ...

        log.debug("Resonse", myResponse.body);
        log.debug("Resonse", myResponse.code);          
        var data = myResponse.body;             
        var retObj = JSON.parse(data);              
        log.debug("Resonse Ret city - ", retObj.city);

Upvotes: 0

Views: 2530

Answers (1)

Adolfo Garza
Adolfo Garza

Reputation: 3039

Here's a basic example of how to do it:

var myRequest = {};
myRequest.headers = {};
myRequest.headers["Authorization"] = 'NLAuth nlauth_account=TSTDRVXXXXX, [email protected], nlauth_signature=XXXXXXX, nlauth_role=3';
myRequest.headers["contentType"] = 'application/json';
myRequest.url = 'https://XXXXXXXXX'; //RESTlet URL
myRequest.body = myDataObj;
var myResponse = https.post(myRequest);

Be careful exposing this on clientside scripts. You don't want to expose your credentials.

Upvotes: 3

Related Questions