前提
实际上开发一个Java-SDK的过程,实际上也就是开发一个基本java项目并打包成jar包的过程,然后可以被其它项目引入使用。
开发Java-SDK
本例介绍开发一个向某一数据接口发送请求并返回结果的SDK
1、新建一个Maven工程test-sdk-java
2、编辑pom文件,引入需要的jar包,若不需要第三方jar包也可以不引入
本例使用了hutool工具包
1 <?xml version="1.0" encoding="UTF-8"?>
2 <project xmlns="http://maven.apache.org/POM/4.0.0"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5 <modelVersion>4.0.0</modelVersion>
6
7 <groupId>org.example</groupId>
8 <artifactId>test-sdk-java</artifactId>
9 <version>1.0-SNAPSHOT</version>
10
11 <dependencies>
12 <dependency>
13 <groupId>cn.hutool</groupId>
14 <artifactId>hutool-all</artifactId>
15 <version>5.3.7</version>
16 </dependency>
17 </dependencies>
18
19 </project>
3、编辑封装类,可以封装一些必要的逻辑
MyHttpRequest.java
1 package com.test.api.bean;
2
3 import cn.hutool.http.HttpRequest;
4 import cn.hutool.http.HttpResponse;
5
6 public class MyHttpRequest {
7
8 private HttpRequest httpRequest;
9
10 public MyHttpRequest(String url){
11 httpRequest = HttpRequest.get(url);
12 // 可以封装其他逻辑
13 }
14
15 public MyHttpResponse execute(){
16 if(httpRequest == null) {
17 throw new NullPointerException("httpRequest is empty !");
18 }
19 HttpResponse httpResponse = httpRequest.execute();
20 MyHttpResponse myHttpResponse = new MyHttpResponse();
21 myHttpResponse.setHttpResponse(httpResponse);
22 return myHttpResponse;
23 }
24
25 public static void main(String[] args) {
26 MyHttpRequest myHttpRequest = new MyHttpRequest("https://www.sina.com");
27 MyHttpResponse myHttpResponse = myHttpRequest.execute();
28 int status = myHttpResponse.getStatus();
29 if(status == 200) {
30 System.out.println(myHttpResponse.body());
31 }else {
32 System.out.println("status === " + status );
33 System.out.println("请求失败!");
34 }
35 }
36 }
MyHttpResponse.java
1 package com.test.api.bean;
2
3 import cn.hutool.http.HttpResponse;
4
5 public class MyHttpResponse{
6
7 HttpResponse httpResponse;
8
9 public HttpResponse getHttpResponse() {
10 return httpResponse;
11 }
12
13 public void setHttpResponse(HttpResponse httpResponse) {
14 this.httpResponse = httpResponse;
15
16 }
17
18 public int getStatus() {
19 if(httpResponse == null) {
20 throw new NullPointerException("httpResponse is empty !");
21 }
22 return httpResponse.getStatus();
23 }
24
25 public String body(){
26 if(httpResponse == null) {
27 throw new NullPointerException("httpResponse is empty !");
28 }
29 return httpResponse.body();
30 }
31 }
4、编辑一个客户端MyHttpClient.java
1 package com.test.api;
2
3 import com.test.api.bean.MyHttpRequest;
4 import com.test.api.bean.MyHttpResponse;
5
6 public class MyHttpClient {
7
8 private static MyHttpClient myHttpClient;
9
10 /**
11 * @return Instance
12 */
13 public static MyHttpClient getInstance() {
14 synchronized (MyHttpClient.class) {
15 if(myHttpClient == null) {
16 myHttpClient = new MyHttpClient();
17 }
18 }
19 return myHttpClient;
20 }
21
22 public MyHttpResponse execute(String url){
23 MyHttpRequest myHttpRequest = new MyHttpRequest(url);
24 return myHttpRequest.execute();
25 }
26
27 }
5、打包
1)调用方是maven工程,调用时直接使用依赖引入的方法使用sdk
使用mvn命令:mvn clean install打包安装
2)调用方是非maven工程,调用时直使用 sdk jar包
需要使用其他方式打包:见【Java】Maven 打包可运行jar包
使用Java-SDK
1、新建一个Maven工程test-sdk-java-test
2、引入sdk依赖
1 <?xml version="1.0" encoding="UTF-8"?>
2 <project xmlns="http://maven.apache.org/POM/4.0.0"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5 <modelVersion>4.0.0</modelVersion>
6
7 <groupId>org.example</groupId>
8 <artifactId>test-sdk-java-test</artifactId>
9 <version>1.0-SNAPSHOT</version>
10
11 <dependencies>
12 <dependency>
13 <groupId>org.example</groupId>
14 <artifactId>test-sdk-java</artifactId>
15 <version>1.0-SNAPSHOT</version>
16 </dependency>
17 </dependencies>
18 </project>
3、编写主类进行测试
1 public class MyMain {
2 public static void main(String[] args) {
3 // 配置
4 String url = "https://www.sina.com";
5 // 获取SDK中客户端
6 MyHttpClient myHttpClient = MyHttpClient.getInstance();
7 // 执行业务
8 MyHttpResponse myHttpResponse = myHttpClient.execute(url);
9 int status = myHttpResponse.getStatus();
10 if(status == 200) {
11 System.out.println("请求成功");
12 System.out.println(myHttpResponse.body());
13 }else {
14 System.out.println("status === " + status );
15 System.out.println("请求失败!");
16 }
17 }
18 }
4、运行主类的主方法
来源:oschina
链接:https://my.oschina.net/u/4303989/blog/4303891