ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

fabric-SDK调用参考

2021-06-08 11:01:42  阅读:191  来源: 互联网

标签:调用 surveyRequest String resp private static params SDK fabric


区块链Fabric SDK调用参考

java语言sdk

框架及秘钥支持

框架 秘钥
fabric SM2,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

标签:调用,surveyRequest,String,resp,private,static,params,SDK,fabric
来源: https://blog.51cto.com/u_15261170/2880805

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有