作为开发者,每次调用接口都需要处理这一堆繁琐的事情,比如鉴权需要自己写加密算法,生成随机数等等,这些每个开发者写一个接口就要写一遍,这样会相当繁琐,同时开发者自己写加密算法可能还不一样,因此,需要开发一个简单易用的 SDK,使开发者只需关注调用哪些接口、传递哪些参数,就像调用自己编写的代码一样简单
接下来是开发SDK的一般步骤:
1、新建spring-boot项目
2、编写SDK名称和版本号
<groupId>com.wanglei</groupId>
<artifactId>MyApi-client-sdk</artifactId>
<version>0.0.1</version>
<name>MyApi-client-sdk</name>
<description>MyApi-client-sdk</description>
3、插入一些必要的依赖
比如spring-boot-configuration-processor,这个依赖用来为自动生成配置的代码提示。
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
4、编写启动类(配置类)
现在我们的目标是为用户生成一个可用的客户端对象。刚才我们是如何生成的呢?我们手动创建了一个新的对象实例。而现在,我们希望用户能够通过引入 starter 的方式直接使用客户端,而不需要手动创建,所以我们需要编写一个配置类。
删掉主类,创建配置类MyApiClientConfig.java。
@Configuration
@ConfigurationProperties("myapi.client")
@Data
@ComponentScan
public class MyApiClientConfig {
private String accessKey;
private String secretKet;
@Bean
public MyApiClient myApiClient(){
return new MyApiClient(accessKey,secretKet);
}
}
5、注册配置类 resources/META-INF/spring.factories
创建resources/META-INF/spring.factories文件
再编写如下配置代码
org.springframework.boot.autoconfigure.EnableAutoConfiguration =com.wanglei.myapiclientsdk.MyApiClientConfig
6、测试打包
使用maven的install命令打包到本地,就可以再其他项目中使用啦。
7、在其他项目中使用
在项目中引入如下依赖就可以使用所开发的SDK功能了
<dependency>
<groupId>com.wanglei</groupId>
<artifactId>MyApi-client-sdk</artifactId>
<version>0.0.1</version>
</dependency>