这是meteor功能,我们无法从Meteor调用REST API
'toScaleInstance': function(){
var Response = HTTP.call("PUT", "0.0.0.0:8765/service/api/v1",
{
headers:{"content-type":"application/json"},
data:{
"num":"1",
"project":"projectname"
}
});
console.log(Response);
}
它抛出“没有JSON对象可以解码”,api是用python编写的。使用curl时,相同的api工作正常。
curl --dump-header - -H "Content-Type: application/json" -X PUT --data "{\"num\":\"1\", \"project\":\"projectname\"}" 0.0.0.0:8765/service/api/v1/
如果您需要更多信息,请与我们联系。谢谢
python代码
@app.route("/api/v1/", methods=['PUT'])
def scale():
"""
docker-compose scale
"""
req = loads(request.data)
name = req['project']
num = req['num']
"""
some logic
"""
return jsonify(command='scale')
注意:我们在python中打印request.data,并在从Meteor调用时打印null,并在通过curl请求时打印正确的数据
答案 0 :(得分:0)
我不认为你的python代码正在返回任何json。请尝试以下方法:
from flask import jsonify
@app.route('/api/v1', methods=['PUT'])
def scale():
" docker-compose scale "
# your logic here
return jsonify(return_value)