3

初めて Restlets を試していますが、データを返すのに問題があります。

基本的なレストレットを作成し、NetSuite にデプロイしました。コードは次のとおりです。

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

Chromes の REST コンソール アプリケーションを使用して、次のように設定しました。

Request URI: https://rest.netsuite.com/app/site/hosting/restlet.nl?script=123&deploy=1&recordtype=customer&id=2409
Request Headers: NLAuth nlauth_account=123456,nlauth_email=email@emailaddy.com,nlauth_signature=password

操作として実行するとGET、次のエラーが返されます。

error code: JS_EXCEPTION
error message:type

続いて以下のメール。

Date & Time: 8/19/2013 2:48 pm
Execution Time: 0.06s
Script Usage: 0
Script: getRecord
Type: RESTlet
Function: getRESTlet
Error: SSS_MISSING_REQD_ARGUMENT
type
Stack Trace: getRESTlet(getCustomer.js:14)
restletwrapper(null$lib:3)

顧客レコードが存在し、RestLet コードは NetSuite ヘルプ システムからのものであり、スクリプトが失敗するとエラー メールが表示されるので、展開 URL が適切であることがわかります。

私が間違っていることについてのアイデアはありますか?

- 編集 -

関数シグネチャを変更してfunction getRESTlet(type,dataIn)型エラーを解決しますが、次のようになります。

error code: UNEXPECTED_ERROR
error message:TypeError: Cannot read property "recordtype" from undefined (getCustomer.js#14)

customerまた、idからとを削除し、代わりに REST コンソールrequest URIのセクションにリストしました。Request Payload

--編集2--

関数に追加nlapiLogExecution('DEBUG', 'JSON.stringify(datain) is:', JSON.stringify(datain));すると、ログエントリに空白が返されます。datainがnullのようです....

4

4 に答える 4

1

リクエスト ヘッダーの content-type を application/json に設定すると、同様の問題が解決されました。

デフォルトの content-type は text/plain で、文字列化された JSON オブジェクトを関数に渡し、文字列が返されることを期待します。

content-type を application/json または application/xml に設定すると、「datain」パラメーターは JavaScript オブジェクトとして取り込まれます。

NetSuite ドキュメントから:

ユーザーが JSON または TEXT 以外のコンテンツ タイプを指定すると、次のメッセージとともに 415 エラーが返されます。

無効なコンテンツ タイプです。RESTlet では、application/json、application/xml、または text/plain のみを使用できます。

ユーザーが指定された型とは異なる形式でデータを提供すると、次のいずれかのメッセージとともに次のエラーが返されます。

エラー コード = INVALID_RETURN_DATA_FORMAT エラー メッセージ = 無効なデータ形式です。TEXT を返す必要があります。エラー メッセージ = 無効なデータ形式です。JavaScript オブジェクトを返す必要があります。

于 2015-06-09T20:01:32.530 に答える
1

のエラーを修正するには

エラー コード = INVALID_RETURN_DATA_FORMAT エラー メッセージ = 無効なデータ形式です。TEXT を返す必要があります。エラー メッセージ = 無効なデータ形式です。JavaScript オブジェクトを返す必要があります。

「json」の get 指定 get リクエストに Content-type を指定できます。ドキュメントは、「受け入れる」jsonを指定する必要があることを示しているように見えますが、私にとっては、getのコンテンツタイプのみがリクエストを機能させます。

于 2016-02-19T07:24:22.013 に答える