用过别人写的一些微信公众号实现的SDK,感觉不是很好用,繁琐不说,实现也不算是很优雅, 本着减轻使用者的负担,所以就自己写了一套声明式微信公众号API SDK, 调用方需要关注的点只有语法路径,参数,返回结果,简洁明了,易扩展
1基于JDK的动态代理,类似与mybatis mapper接口注解SQL的方式 2实现声明式微信公众号,小程序官方文档的SDK实现 3信赖于fastjons和okhttp,支持json解析库和http请求库的可插拨式替换
git clone https://gitee.com/ngitfk/wesmile.git
cd ./wesmile
mvn clean install
或者
mvn clean install -DskipTests=true
添加依赖
<dependency>
<groupId>com.qian</groupId>
<artifactId>wesmile</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
//init with your properties
WeSmileUtil.init(config.getAppid(), config.getAppsecret());
UserAnalysisData api=WeSmileUtil.getInstance(UserAnalysisData.class)
//build params and invoke
UserAnalyze userAnalyze = new UserAnalyze();
userAnalyze.setBegin_date("2014-12-02");
userAnalyze.setEnd_date("2014-12-07");
Getusersummary getusersummary = api.getusersummary(userAnalyze);
or
//
WeSmile ws =new WeSmile();
weSmile.setAppid(appid);
weSmile.setAppSecret(appSecret);
customer http request sender
we.setHttpRequester(...);
UserAnalysisData api=ws.getInstance(UserAnalysisData.class)
//定义接口方法参考com.qian.wesmile.api包中的接口写法
@RelativePath("/datacube/getweanalysisappiddailyvisittrend")//根据官方文档填写地址
List<Map> yourMethod(@JsonBody Params Params);
//定义接口返回的数据实体类,字段名采用下划线风格以减少不必要的麻烦,接口方法中的参数即是API中的参数
YourSelfInterface api=WeSmileUtil.getInstance(YourSelfInterface.class);
api.yourMethod();
核心API中的WeSmileUtil.getInstance()或者WeSmile.getInstance()方法的参数可以是任意的接口的class对象, 根据 微信开放文档 中接口的说明,自定义接口并使用com.qian.wx.annotation下几个注解声明请示的路径以及参数,已经提供了一API的声明 可以直接使用,欢迎提供其它的接口声明并提交PR,
- Fork 本仓库
- 新建 Feat_xxx 分支
- 提交代码
- 新建 Pull Request