サーバー側のMeteor.jsメソッドで、Domino Data Lab(DDL)のRest APIに正しくリクエストしようとしています。Meteor.jsで正しいHTTP Post要求をDomino DatalabのRest APIに送信する方法
DDLは、REST APIを介してデータサイエンスモデルを呼び出すためのプラットフォームを提供します。このAPIの彼らのドキュメントはここにある:私はドキュメントを疑う、
http://support.dominodatalab.com/hc/en-us/articles/204173149-API-Endpoints-Model-Deployment
しかし、私は経験豊富な流星の開発者がCURLやPythonでの要求の例を参照してに正しくのparamsを取得する方法を知っているだろうと思うので、便利ですDDLが探しているJSON形式
Domino Datalabには4つの方法の説明がありますが、Meteor.jsでは使用できません。私はいくつかを試してみた
例
CURLリクエスト
curl -v -X POST \
https://app.dominodatalab.com/MYURL \
-H 'Content-Type: application/json' \
-H 'X-Domino-Api-Key: YOUR_API_KEY' \
-d '{"parameters": [ "FOO", "BAR", "ETC"]}'
Pythonのリクエスト
import requests
response =
requests.post("https://app.dominodatalab.com/MYURL",
headers = {
"X-Domino-Api-Key": "YOUR_API_KEY",
"Content-Type": "application/json"
},
json = {
"parameters": ["FOO", "BAR", "ETC"]
}
)
print(response.status_code)
print(response.headers)
print(response.json())
:私はカールとPythonの例を投稿します異なる方法(data
とparams
オプション)流星のドキュメントに基づいていますが、ここでは私の最高の試みである:私が正しくJSONオブジェクトとしてパラメータを送信するために流星のドキュメントで、このエントリを使用してきた
Meteor.methods({
score_app: function(){
var test = HTTP.call("POST", "https://app.dominodatalab.com/MYURL",
{ headers: {
"Content-Type": "application/json",
"X-Domino-Api-Key": "YOUR_API_KEY"
},
// This is where the problem is. Have tried multiple syntax versions and tried using the `params`options for the HTTP call instead of `data`
data: {'params': [143]
}
},
function (error, result) {
// The syntax below should be if not an error, log the result (for testing etc, otherwise, log "http post error". I may have incorrectly switched this around, but the original version I got from an online example had it the console.log statements in the reverse order.
if (!error) {
console.log(result);
} else{
console.log("http post error");
};
});
}
});
: http://docs.meteor.com/api/http.html
データ・ドミノ・ラボ(DDL)への接続は正しく行われましたが、DDLが必要とするJSON形式のパラメータを要求が送信していないため、パラメータが正しく認識されません。
result: 'You must provide a JSON object in your request body
with a parameters key containing an array of parameters.' } }
私はDDLフリープランを採用していますが、この質問へのリンクは技術サポートにメールでお知らせします。これはニッチな問題ですが、将来的にMeteor.js開発者がDDLのデータサイエンスモデルにリンクしたいと考えることが重要になります。