Files
SOP/sop-sdk/sdk-java
2025-06-11 21:53:53 +08:00
..
2025-06-11 21:53:53 +08:00
5.0
2024-12-22 23:09:46 +08:00
2025-06-11 21:53:53 +08:00
2025-02-02 21:28:05 +08:00

sdk-java

开放平台把接口开发完毕后一般需要开发对应的SDK提供给ISV。SOP提供了一个基础的SDK开发包

开发者可以在此基础上做开发就拿sdk-java来说具体步骤如下

sdk-java

SDK依赖了三个jar包

  • okhttp.jar 用于网络请求
  • fastjson.jar 用于json处理
  • commons-logging.jar 日志处理

接口封装步骤

比如获取故事信息接口

  • 接口名story.get
  • 版本号1.0
  • 参数id
  • 返回信息
{
    "subCode": "",
    "subMsg": "",
    "code": "0",
    "msg": "success",
    "data": {
        "addTime": "2024-11-08 10:21:23",
        "name": "乌鸦喝水",
        "id": 1
    }
}

针对这个接口,封装步骤如下:

1.在model包下新建一个类,定义业务参数

@Data
public class GetStoryModel {

    private Integer id;
}

2.在response包下新建一个返回类GetStoryResponse

里面填写返回的字段

@Data
public class GetStoryResponse {
    private Long id;
    private String name;
    private Date addTime;
}

3.在request包下新建一个请求类,继承BaseRequest

BaseRequest中有个泛型参数GetStoryResponse类,表示这个请求对应的返回类。
重写method()方法,填接口名。

如果要指定版本号,可重写version()方法,或者后续使用request.setVersion(version)进行设置

public class GetStoryRequest extends BaseRequest<GetStoryResponse> {
    @Override
    protected String method() {
        return "story.get";
    }

}

可重写getRequestMethod()方法指定HTTP请求method默认是POST。

@Override
protected RequestMethod getRequestMethod() {
    return RequestMethod.GET;
}

建议读请求用GET写请求用POST

使用方式

String url = "http://localhost:8081/api";
String appId = "2019032617262200001";
String privateKey = "你的私钥";

// 声明一个就行
OpenClient client = new OpenClient(url, appId, privateKey);

@Test
public void testGet() {
    // 创建请求对象
    GetStoryRequest request = new GetStoryRequest();
    // 请求参数
    GetStoryModel model = new GetStoryModel();
    model.setId(1);
    request.setBizModel(model);

    // 发送请求
    Result<GetStoryResponse> result = client.execute(request);

    if (result.isSuccess()) {
        GetStoryResponse response = result.getData();
        // 返回结果
        System.out.println(String.format("response:%s",
                JSON.toJSONString(response)));
    } else {
        System.out.println("错误subCode:" + result.getSubCode() + ", subMsg:" + result.getSubMsg());
    }
}