Skip to content

Latest commit

 

History

History
66 lines (57 loc) · 2.89 KB

rest-api.md

File metadata and controls

66 lines (57 loc) · 2.89 KB

Use REST API to query and invoke chaincodes

Login into org1 as user1 and save returned token into env variable JWT which we'll use to identify our user in subsequent requests:

JWT=`(curl -d '{"username":"user1","password":"pass"}' -H "Content-Type: application/json" http://localhost:4000/users | tr -d '"')`

Query channels org1 has joined

curl -H "Authorization: Bearer $JWT" http://localhost:4000/channels

returns

[{"channel_id":"common"},{"channel_id":"org1-org2"}]

Query status, orgs, instantiated chaincodes and block 2 of channel common:

curl -H "Authorization: Bearer $JWT" http://localhost:4000/channels/common
curl -H "Authorization: Bearer $JWT" http://localhost:4000/channels/common/chaincodes
curl -H "Authorization: Bearer $JWT" http://localhost:4000/channels/common/orgs
curl -H "Authorization: Bearer $JWT" http://localhost:4000/channels/common/blocks/2

Invoke function put of chaincode reference on channel common to save entity of type account and id 1.

With ["targets"]:

curl -H "Authorization: Bearer $JWT" -H "Content-Type: application/json" \
http://localhost:4000/channels/common/chaincodes/reference -d '{"fcn":"put","args":["account","1","{name:\"one\"}"],"targets":["peer0.org1.example.com","peer0.org2.example.com"]}'

Without ["targets"] submits for endorsement to all orgs required by the endorsement policy:

curl -H "Authorization: Bearer $JWT" -H "Content-Type: application/json" \
http://localhost:4000/channels/common/chaincodes/reference -d '{"fcn":"put","args":["account","1","{name:\"one\"}"]}'

To wait for transaction to commit add waitForTransactionEvent:

curl -H "Authorization: Bearer $JWT" -H "Content-Type: application/json" \
http://localhost:4000/channels/common/chaincodes/reference -d '{"fcn":"put","args":["account","1","{name:\"one\"}"],"waitForTransactionEvent":true}'

Query function list of chaincode reference on channel common with args ["account"].

With ["targets"]:

curl -H "Authorization: Bearer $JWT" \
'http://localhost:4000/channels/common/chaincodes/reference?fcn=list&args=%5B%22account%22%5D&targets=%5B%22peer0.org1.example.com%22%5D'

Without ["targets"] returns query results from all orgs of the channel:

curl -H "Authorization: Bearer $JWT" \
'http://localhost:4000/channels/common/chaincodes/reference?fcn=list&args=%5B%22account%22%5D'

Get an array of json objects not strings by adding unescape parameter:

curl -H "Authorization: Bearer $JWT" \
'http://localhost:4000/channels/common/chaincodes/reference?fcn=list&args=%5B%22account%22%5D&unescape=true'

Get one record with function get of chaincode reference on channel common with args ["account","1"].

curl -H "Authorization: Bearer $JWT" 'http://localhost:4000/channels/common/chaincodes/reference?fcn=get&args=%5B%22account%22%2C%221%22%5D'