WeCross Java SDK API¶
SDK API分为两大类型,一种是对跨链路由RPC接口调用的封装,一种是资源接口。
API列表¶
- RPC封装接口
RemoteCall<StubResponse> supportedStubs();
RemoteCall<AccountResponse> listAccount();
RemoteCall<ResourceResponse> listResources(Boolean ignoreRemote);
RemoteCall<ResourceDetailResponse> detail(String path);
RemoteCall<TransactionResponse> call(String path, String method, String... args);
RemoteCall<TransactionResponse> sendTransaction(String path, String method, String... args);
RemoteCall<TransactionResponse> invoke(String path, String method, String... args);
RemoteCall<TransactionResponse> callXA(
String transactionID, String path, String method, String... args);
RemoteCall<TransactionResponse> sendXATransaction(
String transactionID, String path, String method, String... args);
RemoteCall<XAResponse> startXATransaction(String transactionID, String[] paths);
RemoteCall<XAResponse> commitXATransaction(String transactionID, String[] paths);
RemoteCall<XAResponse> rollbackXATransaction(String transactionID, String[] paths);
RemoteCall<XATransactionResponse> getXATransaction(String transactionID, String[] paths);
RemoteCall<CommandResponse> customCommand(String command, String path, Object... args);
RemoteCall<XATransactionListResponse> listXATransactions(int size);
RemoteCall<UAResponse> register(String name, String password) throws WeCrossSDKException;
RemoteCall<UAResponse> login(String name, String password);
RemoteCall<UAResponse> logout();
RemoteCall<UAResponse> addChainAccount(String type, ChainAccount chainAccount);
RemoteCall<UAResponse> setDefaultAccount(String type, ChainAccount chainAccount);
RemoteCall<UAResponse> setDefaultAccount(String type, Integer keyID);
String getCurrentTransactionID();
- 资源接口
Resource ResourceFactory.build(WeCrossRPC weCrossRPC, String path, String account)
boolean isActive();
ResourceDetail detail();
String[] call(String method);
String[] call(String method, String... args);
String[] sendTransaction(String method);
String[] sendTransaction(String method, String... args);
RPC封装接口解析¶
supportedStubs¶
显示router当前支持的插件列表。
参数¶
- 无
返回值¶
StubResponse- 响应包version:String- 版本号errorCode:int- 状态码message:String- 错误消息data:Stubs- 支持的插件列表
java示例¶
// 初始化RPC实例
WeCrossRPCService weCrossRPCService = new WeCrossRPCService();
WeCrossRPC weCrossRPC = WeCrossRPCFactory.build(weCrossRPCService);
// 调用RPC接口,目前只支持同步调用
StubResponse response = weCrossRPC.supportedStubs().send();
注 - 之后的java示例,会省去初始化WeCrossRPC的步骤。
listAccount¶
查看当前全局账号的详细信息。
参数¶
- 无
返回值¶
AccountResponse- 响应包version:String- 版本号errorCode:int- 状态码message:String- 错误消息data:UniversalAccount- 账号详细信息
java示例¶
AccountResponse response = weCrossRPC.listAccounts().send();
listResources¶
显示router配置的跨链资源。
参数¶
ignoreRemote:Boolean- 是否忽略远程资源
返回值¶
ResourceResponse- 响应包version:String- 版本号errorCode:int- 状态码message:String- 错误消息data:Resources- 配置的资源列表
java示例¶
ResourceResponse response = weCrossRPC.listResources(true).send();
detail¶
获取资源详情。
参数¶
path:String- 跨链资源标识
返回值¶
ResourceDetailResponse- 响应包version:String- 版本号errorCode:int- 状态码message:String- 错误消息data:ResourceDetail- 资源详情
java示例¶
ResourceDetailResponse response = weCrossRPC.detail("payment.bcos.HelloWeCross").send();
call(无参数)¶
调用智能合约,不更改链状态,不发交易。
参数¶
path:String- 跨链资源标识method:String- 调用的方法
返回值¶
TransactionResponse- 响应包version:String- 版本号errorCode:int- 状态码message:String- 错误消息data:Receipt- 调用结果
java示例¶
TransactionResponse transactionResponse =
weCrossRPC
.call(
"payment.bcos.HelloWeCross","get")
.send();
call(带参数)¶
调用智能合约,不更改链状态,不发交易。
参数¶
path:String- 跨链资源标识method:String- 调用的方法args:String...- 可变参数列表
返回值¶
TransactionResponse- 响应包version:String- 版本号errorCode:int- 状态码message:String- 错误消息data:Receipt- 调用结果
java示例¶
TransactionResponse transactionResponse =
weCrossRPC
.call(
"payment.bcos.HelloWeCross","get","key")
.send();
sendTransaction(无参数)¶
调用智能合约,会改变链状态,发交易。
参数¶
path:String- 跨链资源标识method:String- 调用的方法
返回值¶
TransactionResponse- 响应包version:String- 版本号errorCode:int- 状态码message:String- 错误消息data:Receipt- 调用结果
java示例¶
TransactionResponse transactionResponse =
weCrossRPC
.sendTransaction(
"payment.bcos.HelloWeCross","set")
.send();
sendTransaction(带参数)¶
invoke(无参数)¶
调用智能合约,会改变链状态,发交易;在非事务状态下,与sendTransaction接口一致;在事务状态下,与sendXATransaction接口一致。
参数¶
path:String- 跨链资源标识method:String- 调用的方法
返回值¶
TransactionResponse- 响应包version:String- 版本号errorCode:int- 状态码message:String- 错误消息data:Receipt- 调用结果
java示例¶
TransactionResponse transactionResponse =
weCrossRPC
.invoke(
"payment.bcos.HelloWeCross","set")
.send();
sendTransaction(带参数)¶
调用智能合约,会改变链状态,发交易。在非事务状态下,与sendTransaction接口一致;在事务状态下,与sendXATransaction接口一致。
参数¶
path:String- 跨链资源标识method:String- 调用的方法args:String...- 可变参数列表
返回值¶
TransactionResponse- 响应包version:String- 版本号errorCode:int- 状态码message:String- 错误消息data:Receipt- 调用结果
java示例¶
TransactionResponse transactionResponse =
weCrossRPC
.invoke(
"payment.bcos.HelloWeCross","set","value")
.send();
callXA¶
获取事务中的状态数据,不发交易
参数¶
transactionID:String- 事务IDpath:String- 跨链资源标识method:String- 调用的方法args:String...- 可变参数列表
返回值¶
TransactionResponse- 响应包version:String- 版本号errorCode:int- 状态码message:String- 错误消息data:Receipt- 调用结果
java示例¶
TransactionResponse transactionResponse =
weCrossRPC
.callXA(
"payment.bcos.evidence","queryEvidence","key1")
.send();
sendXATransaction¶
执行事务,发交易
参数¶
transactionID:String- 事务IDpath:String- 跨链资源标识method:String- 调用的方法args:String...- 可变参数列表
返回值¶
TransactionResponse- 响应包version:String- 版本号errorCode:int- 状态码message:String- 错误消息data:Receipt- 调用结果
java示例¶
TransactionResponse transactionResponse =
weCrossRPC
.sendXATransaction(
"0001","payment.bcos.evidence","newEvidence","key1","evidence1")
.send();
startXATransaction¶
开始事务,锁定事务相关资源,发交易
参数¶
transactionID:String- 事务IDpaths:String[]- 参与该事务的链路径列表
返回值¶
XAResponse- 响应包version:String- 版本号errorCode:int- 状态码message:String- 错误消息data:int- 调用结果
java示例¶
XAResponse xaResponse =
weCrossRPC
.startXATransaction(
"0001", new String[]{"payment.bcos", "payment.fabric"},)
.send();
commitXATransaction¶
提交事务,释放事务相关资源,发交易
参数¶
transactionID:String- 事务IDpaths:String[]- 参与该事务的链路径列表
返回值¶
XAResponse- 响应包version:String- 版本号errorCode:int- 状态码message:String- 错误消息data:int- 调用结果
java示例¶
XAResponse xaResponse =
weCrossRPC
.commitTransaction(
"0001", new String[]{"payment.bcos", "payment.fabric"},)
.send();
rollbackXATransaction¶
回滚事务,释放事务相关资源,发交易
参数¶
transactionID:String- 事务IDpaths:String[]- 参与该事务的链路径列表
返回值¶
XAResponse- 响应包version:String- 版本号errorCode:int- 状态码message:String- 错误消息data:int- 调用结果
java示例¶
XAResponse xaResponse =
weCrossRPC
.rollbackTransaction(
"0001", new String[]{"payment.bcos", "payment.fabric"},)
.send();
getXATransaction¶
获取事务详情,不发交易
参数¶
transactionID:String- 事务IDpaths:String[]- 参与该事务的链路径列表
返回值¶
XATransactionResponse- 响应包version:String- 版本号errorCode:int- 状态码message:String- 错误消息data:String- 事务信息
java示例¶
XATransactionResponse xaTransactionResponse =
weCrossRPC
.getTransactionInfo(
"0001", new String[]{"payment.bcos", "payment.fabric"},)
.send();
listXATransactions¶
获取事务列表,不发交易
参数¶
size:int- 获取事务个数
返回值¶
XATransactionListResponse- 响应包version:String- 版本号errorCode:int- 状态码message:String- 错误消息data:String[]- 事务信息列表
java示例¶
XATransactionListResponse xaTransactionListResponse =
weCrossRPC
.getTransactionIDs(
"payment.bcos.evidence", "bcos_user1", 0)
.send();
getCurrentTransactionID¶
获取当前SDK正处的事务ID,不发交易
参数¶
- 无
返回值¶
String- 当前SDK正处的事务ID
java示例¶
String transactionID = weCrossRPC.getCurrentTransactionID();
customCommand¶
自定义命令
参数¶
command:String- 命令名称path:String- 跨链资源标识args:Object...- 可变参数
返回值¶
CommandResponse- 响应包version:String- 版本号errorCode:int- 状态码message:String- 错误消息data:String- 调用结果
java示例¶
CommandResponse commandResponse =
weCrossRPC
.customCommand(
"deploy", "payment.bcos.evidence", "Evidence")
.send();
register¶
注册一个UniversalAccount账号
参数¶
name:String- 账号名password:String- 账号密码
返回值¶
UAResponse- 响应包version:String- 版本号errorCode:int- 状态码message:String- 错误消息data:UAReceipt- 注册账号信息
java示例¶
UAResponse uaResponse =
weCrossRPC
.register(
"org1-admin", "123456").send();
login¶
登录一个UniversalAccount账号
参数¶
name:String- 账号名password:String- 账号密码
返回值¶
UAResponse- 响应包version:String- 版本号errorCode:int- 状态码message:String- 错误消息data:UAReceipt- 登录账号信息
java示例¶
UAResponse uaResponse =
weCrossRPC
.login(
"org1-admin", "123456").send();
资源接口解析¶
ResourceFactory.build¶
初始化一个跨链资源
参数¶
weCrossRPC:WeCrossRPC- RPC实例path:String- 跨链资源标识
返回值¶
Resource- 跨链资源实例
java示例¶
// 初始化RPC实例
WeCrossRPCService weCrossRPCService = new WeCrossRPCService();
WeCrossRPC weCrossRPC = WeCrossRPCFactory.build(weCrossRPCService);
// 初始化资源实例
Resource resource = ResourceFactory.build(weCrossRPC, path);
注 - 之后的java示例,会省去初始化Resource的步骤。
isActive¶
获取资源状态,true:可达,false:不可达。
参数¶
- 无
返回值¶
bool- 资源状态
java示例¶
bool status = resource.isActive();
call(无参数)¶
调用智能合约,不更改链状态,不发交易。
参数¶
method:String- 调用的方法
返回值¶
String[]- 调用结果
java示例¶
String[] result = resource.call("get");
call(带参数)¶
调用智能合约,不更改链状态,不发交易。
参数¶
method:String- 调用的方法args:String...- 可变参数列表
返回值¶
String[]- 调用结果
java示例¶
String[] result = resource.call("get", "key");