“errorMessage”:“JSON中的意外令牌”$ ENVIRONMENT_ID /节点

时间:2018-05-18 17:30:28

标签: curl

所以我在这里试图学习Kaleido平台但是 无法为自己尝试自动化POC。

我准备好了所有变量......

echo $CONSORTIUM_ID
u0n2ntzvyy
echo $ENVIRONMENT_ID
u0h47hwa69
echo $MEMBERSHIP_ID
u0pe8jgwom

但是当我打电话时,我得到了......

curl -X POST -H "$HDR_AUTH" -H "$HDR_CT"  -d "{ 'name': 'suppliernode2', 'membership_id': 'u0pe8jgwom' }" "$APIURL/consortia/$CONSORTIUM_ID/environments/$ENVIRONMENT_ID/nodes" | jq

{
  "errorMessage": "Unexpected token in JSON"
}

正如你所看到的,我已经使用了一些事情的硬编码。

api文档不清楚从REST API创建节点需要包括哪些字段 http://console.kaleido.io/docs/docs/api_reference/

1 个答案:

答案 0 :(得分:0)

感谢帖子。

我认为这里一个重要的澄清是,如果你想将REST调用的主体作为多行JSON传递,那么你将需要使用双引号来转义,然后在字体内为字段和值引用双引号 - 例如

CONSORTIUM=$(curl -H "$HDR_AUTH" -H "$HDR_CT" -s "$APIURL/consortia?name=api101" | jq -r ".[0]._id") curl -H "$HDR_AUTH" -H "$HDR_CT" -s -d "{ \ \"name\": \"Sample Environment\", \ \"provider\": \"geth\", \ \"consensus_type\": \"poa\" \ }" "$APIURL/consortia/$CONSORTIUM/environments" | jq

但是,如果您更喜欢使用单行作为通话主体,则应使用单引号进行转义,并在通话主体内使用双引号 - 例如

curl -X POST -d '{"membership_id":"abcde12345", "name":"BANK A node"}' -H "$HDR_AUTH" -H "$HDR_CT" "$APIURL/consortia/{consortia_id}/environments/{environment_id}/nodes" | jq

API 101教程对示例使用多行方法 - http://console.kaleido.io/docs/docs/api101/

了解Kaleido API选择单行演示 - http://console.kaleido.io/docs/docs/api/