fabric-SDK调用参考

java语言sdk

框架及秘钥支持

框架秘钥
fabricSM2,secp256r1

-fabric框架应用使用secp256r1、SM2 秘钥的秘钥托管和秘钥上传两种模式

1. 调用前准备

应用参数

应用参数是用户在创建应用成功之后在应用详情页面获取,或者由本地设置的一些参数,具体包含以下参数

  • 网关接口地址: 网关接口的调用地址
	//网关接口地址ip
    private static String BASE_URL = "http://ip:port";
  • 用户名称: 账本的用户名称
	headers.put("username", "admin")
  • 用户密码: 用户的密码
	headers.put("password", "password");
  • 应用编号: 参与的应用的编号
	headers.put("app_id", "scm_qa");
  • 账本编号: 参与的账本的编号
	headers.put("accountbook_id", "zj_scm_qa");
  • 合约编号: 参与的合约的编号
	headers.put("contract_id", "survey");

2. 准备调用

 	//网关接口地址
    private static String BASE_URL = "http://localhost:8023";
    //URI为固定值,不用修改
    private static String TRANSACTION_URI = "/transaction";
    private static String QUERY_URI = "/query";

    public static void main(String[] args) {
        //创建交易
        insert();
        //修改
        updte();
        //取消
        cancel();
        //删除
        delete();
        //查询指定交易
        query();
        //查询指定交易变更历史
        getHistory();
        //查询交易列表
        list();
    }

    /**
     * 获取请求header
     *
     * @return
     */
    private static Map<String, String> getHeader() {
        //设置请求header
        Map<String, String> headers = new HashMap<>();
        //应用编号
        headers.put("app_id", "scm_qa");
        //账本编号
        headers.put("accountbook_id", "zj_scm_qa");
        //合约编号
        headers.put("contract_id", "survey");
        //用户名称
        headers.put("username", "admin");
        //用户密码
        headers.put("password", "password");
        return headers;
    }

    /**
     * 创建
     */
    private static void insert() {
        // 设置请求param
        InsertSurveyRequest surveyRequest = new InsertSurveyRequest();
        surveyRequest.setKey("123456");
        surveyRequest.setTxType(SurveyTxTypeEnum.INSERT_SURVEY.getTxType());
        Map<String, String> value = new HashMap<>();
        value.put("info", "info");
        surveyRequest.setValue(value);
        String params = JsonUtils.toJson(surveyRequest);
        String resp = HttpUtils.sendURLPost(BASE_URL + TRANSACTION_URI, params, getHeader());
        doSomething(resp);
    }

    /**
     * 更新
     */
    private static void updte() {
        // 设置请求param
        UpdateSurveyRequest surveyRequest = new UpdateSurveyRequest();
        surveyRequest.setKey("123456");
        surveyRequest.setTxType(SurveyTxTypeEnum.UPDATE_SURVEY.getTxType());
        Map<String, String> value = new HashMap<>();
        value.put("info", "info");
        surveyRequest.setValue(value);
        String params = JsonUtils.toJson(surveyRequest);
        String resp = HttpUtils.sendURLPost(BASE_URL + TRANSACTION_URI, params, getHeader());
        doSomething(resp);
    }

    /**
     * 删除
     */
    private static void delete() {
        // 设置请求param
        DeleteSurveyRequest surveyRequest = new DeleteSurveyRequest();
        surveyRequest.setKey("123456");
        surveyRequest.setTxType(SurveyTxTypeEnum.DELETE_SURVEY.getTxType());
        String params = JsonUtils.toJson(surveyRequest);
        String resp = HttpUtils.sendURLPost(BASE_URL + TRANSACTION_URI, params, getHeader());
        doSomething(resp);
    }

    /**
     * 取消
     */
    private static void cancel() {
        // 设置请求param
        CancelSurveyRequest surveyRequest = new CancelSurveyRequest();
        surveyRequest.setKey("123456");
        surveyRequest.setTxType(SurveyTxTypeEnum.CANCEL_SURVEY.getTxType());
        String params = JsonUtils.toJson(surveyRequest);
        String resp = HttpUtils.sendURLPost(BASE_URL + TRANSACTION_URI, params, getHeader());
        doSomething(resp);
    }

    /**
     * 查询指定信息
     */
    private static void query() {
        // 设置请求param
        BaseSurveyRequest cancelBatchRequest = new BaseSurveyRequest();
        cancelBatchRequest.setKey("123456");
        cancelBatchRequest.setTxType(SurveyTxTypeEnum.QUERY_SURVEY.getTxType());
        String params = JsonUtils.toJson(cancelBatchRequest);
        String resp = HttpUtils.sendURLPost(BASE_URL + QUERY_URI, params, getHeader());
        doSomething(resp);
    }

    /**
     * 查询变更历史记录
     */
    private static void getHistory() {
        // 设置请求param
        GetSurveyHistoryRequest surveyRequest = new GetSurveyHistoryRequest();
        surveyRequest.setKey("123456");
        surveyRequest.setChangeType("insert");//查询所有时不传该参数
        surveyRequest.setTxType(SurveyTxTypeEnum.GET_HISTORY.getTxType());
        String params = JsonUtils.toJson(surveyRequest);
        String resp = HttpUtils.sendURLPost(BASE_URL + QUERY_URI, params, getHeader());
        doSomething(resp);
    }

    /**
     * 查询列表
     */
    private static void list() {
        // 设置请求param
        ListSurveyRequest surveyRequest = new ListSurveyRequest();
        surveyRequest.setStartTime("20200720010101");
        surveyRequest.setEndTime("20200820010101");
        surveyRequest.setTxType(SurveyTxTypeEnum.LIST_SURVEY.getTxType());
        String params = JsonUtils.toJson(surveyRequest);
        String resp = HttpUtils.sendURLPost(BASE_URL + QUERY_URI, params, getHeader());
        doSomething(resp);
    }

    /**
     * 处理业务逻辑
     *
     * @param resp
     */
    private static void doSomething(String resp) {
        if (resp != null) {
            //此处为查询接口示例,其它接口resp解析参考此处
            DataResponse<QuerySurveyResponse> response = JsonUtils.json2Object(resp, new TypeReference<DataResponse<QuerySurveyResponse>>() {
            });
            if (response.getResult() == 1 && CommonResponse.SUCCEED.equals(response.getCode())) {
                //success
            } else {
                //fail
            }
        }
    }

SDK源码链接:https://gitee.com/luowenxing/fabric-sdk.git

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lwx-apollo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值