fabric-SDK調用參考

java語言sdk

框架及祕鑰支持

框架 祕鑰
fabric SM2,secp256r1

-fabric框架應用使用secp256r一、SM2 祕鑰的祕鑰託管和祕鑰上傳兩種模式javascript

1. 調用前準備

應用參數java

應用參數是用戶在建立應用成功以後在應用詳情頁面獲取,或者由本地設置的一些參數,具體包含如下參數git

  • 網關接口地址: 網關接口的調用地址
//網關接口地址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.gitjson

相關文章
相關標籤/搜索