2017-07-17 1 views
0

Je tente d'appeler un service Web/URL RestLet à partir d'un autre SuiteScript. Si je comprends bien, je dois utiliser le module http/https pour le faire. Mais je ne suis pas en mesure de trouver un exemple ou des étapes pour le faire.Appel NetSuite RestLet de SuiteLet Client

planification pour utiliser ce code dans 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 
}); 

Le code ci-dessous fonctionne pour moi.

  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); 

et la lecture des données de réponse pour le retour JSON ...

 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); 

Répondre

2

Voici un exemple de base de la façon de le faire:

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); 

Soyez prudent d'exposer ce sur les scripts clientside. Vous ne voulez pas exposer vos informations d'identification.

+0

Merci ... Fonctionne comme prévu ... Je suis en train de mettre à jour le code. – Arindam

+0

Il y a un problème que j'ai trouvé en retournant les données ... Si le serveur retourne les données comme "JSON.stringify (retObj)" alors j'ai besoin d'analyser 2 fois côté client pour obtenir les données .... ' '' var data = JSON.parse (myResponse.body); \t \t \t \t \t \t \t \t var retObj = JSON.parse (données); Log.debug ("Resonse Ret data -", data.city) \t ; Log.debug ("Resonse Ret ret -", retObj.city); \t ; '' ' Première ville ne donne aucune valeur ... 2ème donne ... – Arindam

+0

Quel est le problème? Vous obtenez déjà les données dont vous avez besoin. –