手把手開發一個Java-SDK

前言:實際上開發一個Java-SDK的過程,實際上也就是開發一個基本java項目並打包成jar包的過程,然後可以被其它項目引入使用。區別大概在於,與普通項目相比,它強調的是一種公共過程封裝,而非具體的操作執行。就好比我開發了一個會吃飯的人,但是它現在並不需要馬上吃飯。如果這個人被帶到其他地方,可以直接調用吃飯動作讓它吃飯,而不用關心它怎麼吃的。

 

開發工具:Intellij IDEA

第一步:新建一個maven項目

默認即可,無需勾選模板,一直下一步直到完成

 

第二步:項目開發

與普通maven項目開發無異,着重在於操作過程的完整封裝,比如開發一個自動向某一數據接口發送請求並返回結果的SDK,當然,它的好處就在於可以被直接提供給第三方調用,傳入必須參數後自動完成請求參數封裝以及加簽等動作,將返回結果自動驗籤並輸出最終返回,第三方開發人員無需關心過程,只需關注如何傳入參數然後獲取結果即可。

  使用該SDK你可以:

  • 自動生成祕鑰(公鑰(用於接收方驗籤)+私鑰(用於發送方加簽))
  • 使用客戶端類發送請求並取得返回結果

第三步:打成jar包

File —— Project Structure —— Project Settings —— Artifacts —— 右欄左上角+ —— JAR —— From Modules with dependencies

默認即可,無需設置其他參數(與生成可執行jar包有所區別)

默認即可,同樣無勾選無填寫,——>點擊apply

第四步:構建jar包並輸出

Build —— Build Artifacts —— Build(第一次構建)/  Rebuild(重新構建,會先自定清理上次構建jar包)/ Clean(清理構建好的jar包)

隨後將在項目根目錄下自動生成out文件夾,可以看到生成的jar包已然在內

 第五步:在其他項目導入SDK使用

1. 導入

File —— Project Structure —— Libraries —— 右欄左上角 + —— java ——選擇上一個項目導出的jar包 —— Apply

2. 使用

import com.hyacinth.api.DefaultHyacinthClient;
import com.hyacinth.api.HyacinthClient;
import com.hyacinth.api.HyacinthRequest;
import com.hyacinth.api.HyacinthResponse;
import com.hyacinth.api.exception.HyacinthApiException;

public class SendTest {

    public static void main(String[] gg) {

        //********數據接口地址
        String url = "https://XXXXXXXXXXXXXXX";
        //分配給開發者的應用ID
        String appId = "XXXXXXXXXXXXXXXXXXXXXXXX";
        //開發者的私鑰(用於加簽)
        String appPrivateKey = "XXXXXXXXXXXXXXXXXXXXX";
        //********數據平臺公鑰(用於驗籤)
        String hyacinthPublicKey = "XXXXXXXXXXXXXXXX";
        //生成簽名字符串所使用的簽名算法類型,固定值:RSA2
        String signType = "RSA2";
        //調用的接口版本,固定值:1.0
        String version = "1.0";
        //接口名稱
        String method = "blacklist.court.shixin";
        //業務參數,最大長度不限,除公共參數外所有請求參數都必須放在這個參數中傳遞
        String data = "{'name':'XXX','idCard':'XXXXXXXXXXXXXXXXXXXX'}";

        //實例化客戶端  (客戶端接口 hc = new 客戶端默認實現(參數1,參數2...))
        HyacinthClient hc = new DefaultHyacinthClient(url, appId, appPrivateKey, hyacinthPublicKey, signType, version, method);
        //request類,SDK已經封裝掉了公共參數,這裏只需要傳入業務參數
        HyacinthRequest hyacinthRequest = new HyacinthRequest();
        hyacinthRequest.setData(data);

        //返回
        HyacinthResponse response = null;
        try {
            response = hc.execute(hyacinthRequest);
        } catch (HyacinthApiException e) {
            e.printStackTrace();
        }

        if (response != null && "200".equals(response.getCode())) {
            //處理返回數據
            System.out.println(response.getData());

        }
    }
}

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章