🎨 重构优化小程序Link相关接口
This commit is contained in:
@@ -1,16 +1,32 @@
|
|||||||
package cn.binarywang.wx.miniapp.api;
|
package cn.binarywang.wx.miniapp.api;
|
||||||
|
|
||||||
|
|
||||||
|
import cn.binarywang.wx.miniapp.bean.shortlink.GenerateShortLinkRequest;
|
||||||
import cn.binarywang.wx.miniapp.bean.urllink.GenerateUrlLinkRequest;
|
import cn.binarywang.wx.miniapp.bean.urllink.GenerateUrlLinkRequest;
|
||||||
import me.chanjar.weixin.common.error.WxErrorException;
|
import me.chanjar.weixin.common.error.WxErrorException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取小程序 URL Link接口
|
|
||||||
* 接口文档: https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/url-link/urllink.generate.html
|
|
||||||
* @author <a href="https://github.com/mr-xiaoyu">xiaoyu</a>
|
* @author <a href="https://github.com/mr-xiaoyu">xiaoyu</a>
|
||||||
* @since 2021-06-10
|
* @since 2021-06-10
|
||||||
*/
|
*/
|
||||||
public interface WxMaLinkService {
|
public interface WxMaLinkService {
|
||||||
|
/**
|
||||||
|
* 获取小程序 URL Link接口
|
||||||
|
* 接口文档: https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/url-link/urllink.generate.html
|
||||||
|
*
|
||||||
|
* @param request 请求
|
||||||
|
* @return link地址
|
||||||
|
* @throws WxErrorException .
|
||||||
|
*/
|
||||||
|
String generateUrlLink(GenerateUrlLinkRequest request) throws WxErrorException;
|
||||||
|
|
||||||
String generate(GenerateUrlLinkRequest request) throws WxErrorException;
|
/**
|
||||||
|
* 获取小程序 Short Link接口
|
||||||
|
* 接口文档: https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/short-link/shortlink.generate.html
|
||||||
|
*
|
||||||
|
* @param request 请求
|
||||||
|
* @return link地址
|
||||||
|
* @throws WxErrorException .
|
||||||
|
*/
|
||||||
|
String generateShortLink(GenerateShortLinkRequest request) throws WxErrorException;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,14 +0,0 @@
|
|||||||
package cn.binarywang.wx.miniapp.api;
|
|
||||||
|
|
||||||
|
|
||||||
import cn.binarywang.wx.miniapp.bean.shortlink.GenerateShortLinkRequest;
|
|
||||||
import me.chanjar.weixin.common.error.WxErrorException;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取小程序 Short Link接口
|
|
||||||
* 接口文档: https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/short-link/shortlink.generate.html
|
|
||||||
*/
|
|
||||||
public interface WxMaShortLinkService {
|
|
||||||
|
|
||||||
String generate(GenerateShortLinkRequest request) throws WxErrorException;
|
|
||||||
}
|
|
||||||
@@ -2,28 +2,29 @@ package cn.binarywang.wx.miniapp.api.impl;
|
|||||||
|
|
||||||
import cn.binarywang.wx.miniapp.api.WxMaLinkService;
|
import cn.binarywang.wx.miniapp.api.WxMaLinkService;
|
||||||
import cn.binarywang.wx.miniapp.api.WxMaService;
|
import cn.binarywang.wx.miniapp.api.WxMaService;
|
||||||
|
import cn.binarywang.wx.miniapp.bean.shortlink.GenerateShortLinkRequest;
|
||||||
import cn.binarywang.wx.miniapp.bean.urllink.GenerateUrlLinkRequest;
|
import cn.binarywang.wx.miniapp.bean.urllink.GenerateUrlLinkRequest;
|
||||||
import com.google.gson.JsonObject;
|
import com.google.gson.JsonObject;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import me.chanjar.weixin.common.error.WxErrorException;
|
import me.chanjar.weixin.common.error.WxErrorException;
|
||||||
import me.chanjar.weixin.common.util.json.GsonParser;
|
import me.chanjar.weixin.common.util.json.GsonParser;
|
||||||
import me.chanjar.weixin.common.util.json.WxGsonBuilder;
|
|
||||||
|
|
||||||
import static cn.binarywang.wx.miniapp.constant.WxMaApiUrlConstants.Link.GENERATE_URLLINK_URL;
|
import static cn.binarywang.wx.miniapp.constant.WxMaApiUrlConstants.Link.GENERATE_URLLINK_URL;
|
||||||
|
import static cn.binarywang.wx.miniapp.constant.WxMaApiUrlConstants.ShortLink.GENERATE_SHORT_LINK_URL;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取小程序 URL Link接口实现
|
* 获取小程序 URL Link接口实现
|
||||||
* 接口文档: https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/url-link/urllink.generate.html
|
* 接口文档: https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/url-link/urllink.generate.html
|
||||||
|
*
|
||||||
* @author <a href="https://github.com/mr-xiaoyu">xiaoyu</a>
|
* @author <a href="https://github.com/mr-xiaoyu">xiaoyu</a>
|
||||||
* @since 2021-06-10
|
* @since 2021-06-10
|
||||||
*/
|
*/
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public class WxMaLinkServiceImpl implements WxMaLinkService {
|
public class WxMaLinkServiceImpl implements WxMaLinkService {
|
||||||
|
|
||||||
private final WxMaService wxMaService;
|
private final WxMaService wxMaService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String generate(GenerateUrlLinkRequest request) throws WxErrorException {
|
public String generateUrlLink(GenerateUrlLinkRequest request) throws WxErrorException {
|
||||||
String result = this.wxMaService.post(GENERATE_URLLINK_URL, request);
|
String result = this.wxMaService.post(GENERATE_URLLINK_URL, request);
|
||||||
String linkField = "url_link";
|
String linkField = "url_link";
|
||||||
JsonObject jsonObject = GsonParser.parse(result);
|
JsonObject jsonObject = GsonParser.parse(result);
|
||||||
@@ -32,4 +33,15 @@ public class WxMaLinkServiceImpl implements WxMaLinkService {
|
|||||||
}
|
}
|
||||||
throw new WxErrorException("无url_link");
|
throw new WxErrorException("无url_link");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String generateShortLink(GenerateShortLinkRequest request) throws WxErrorException {
|
||||||
|
String result = this.wxMaService.post(GENERATE_SHORT_LINK_URL, request);
|
||||||
|
String linkField = "link";
|
||||||
|
JsonObject jsonObject = GsonParser.parse(result);
|
||||||
|
if (jsonObject.has(linkField)) {
|
||||||
|
return jsonObject.get(linkField).toString();
|
||||||
|
}
|
||||||
|
throw new WxErrorException("无link");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,34 +0,0 @@
|
|||||||
package cn.binarywang.wx.miniapp.api.impl;
|
|
||||||
|
|
||||||
import cn.binarywang.wx.miniapp.api.WxMaService;
|
|
||||||
import cn.binarywang.wx.miniapp.api.WxMaShortLinkService;
|
|
||||||
import cn.binarywang.wx.miniapp.bean.shortlink.GenerateShortLinkRequest;
|
|
||||||
import cn.binarywang.wx.miniapp.bean.urllink.GenerateUrlLinkRequest;
|
|
||||||
import com.google.gson.JsonObject;
|
|
||||||
import lombok.AllArgsConstructor;
|
|
||||||
import me.chanjar.weixin.common.error.WxErrorException;
|
|
||||||
import me.chanjar.weixin.common.util.json.GsonParser;
|
|
||||||
|
|
||||||
import static cn.binarywang.wx.miniapp.constant.WxMaApiUrlConstants.Link.GENERATE_URLLINK_URL;
|
|
||||||
import static cn.binarywang.wx.miniapp.constant.WxMaApiUrlConstants.ShortLink.GENERATE_SHORT_LINK_URL;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取小程序 Short Link接口
|
|
||||||
* 接口文档: https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/short-link/shortlink.generate.html
|
|
||||||
*/
|
|
||||||
@AllArgsConstructor
|
|
||||||
public class WxMaShortLinkServiceImpl implements WxMaShortLinkService {
|
|
||||||
|
|
||||||
private final WxMaService wxMaService;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String generate(GenerateShortLinkRequest request) throws WxErrorException {
|
|
||||||
String result = this.wxMaService.post(GENERATE_SHORT_LINK_URL,request);
|
|
||||||
String linkField = "link";
|
|
||||||
JsonObject jsonObject = GsonParser.parse(result);
|
|
||||||
if(jsonObject.has(linkField)){
|
|
||||||
return jsonObject.get(linkField).toString();
|
|
||||||
}
|
|
||||||
throw new WxErrorException("无link");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
package cn.binarywang.wx.miniapp.api.impl;
|
package cn.binarywang.wx.miniapp.api.impl;
|
||||||
|
|
||||||
import cn.binarywang.wx.miniapp.api.WxMaService;
|
import cn.binarywang.wx.miniapp.api.WxMaService;
|
||||||
|
import cn.binarywang.wx.miniapp.bean.shortlink.GenerateShortLinkRequest;
|
||||||
import cn.binarywang.wx.miniapp.bean.urllink.GenerateUrlLinkRequest;
|
import cn.binarywang.wx.miniapp.bean.urllink.GenerateUrlLinkRequest;
|
||||||
import cn.binarywang.wx.miniapp.test.ApiTestModule;
|
import cn.binarywang.wx.miniapp.test.ApiTestModule;
|
||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
@@ -8,24 +9,29 @@ import me.chanjar.weixin.common.error.WxErrorException;
|
|||||||
import org.testng.annotations.Guice;
|
import org.testng.annotations.Guice;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
import static org.testng.Assert.*;
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@Guice(modules = ApiTestModule.class)
|
@Guice(modules = ApiTestModule.class)
|
||||||
public class WxMaLinkServiceImplTest {
|
public class WxMaLinkServiceImplTest {
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private WxMaService wxMaService;
|
private WxMaService wxMaService;
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testGenerate() throws WxErrorException {
|
public void testGenerateUrlLink() throws WxErrorException {
|
||||||
|
String url = this.wxMaService.getLinkService().generateUrlLink(GenerateUrlLinkRequest.builder()
|
||||||
GenerateUrlLinkRequest request = GenerateUrlLinkRequest.builder()
|
|
||||||
.path("pages/tabBar/home/home")
|
.path("pages/tabBar/home/home")
|
||||||
.build();
|
.build());
|
||||||
|
|
||||||
String url = this.wxMaService.getLinkService().generate(request);
|
|
||||||
|
|
||||||
System.out.println(url);
|
System.out.println(url);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testGenerateShortLink() throws WxErrorException {
|
||||||
|
final String generate = this.wxMaService.getLinkService()
|
||||||
|
.generateShortLink(GenerateShortLinkRequest.builder().
|
||||||
|
pageUrl("pages/productView/editPhone/editPhone?id=31832")
|
||||||
|
.pageTitle("productView")
|
||||||
|
.isPermanent(false).build());
|
||||||
|
System.out.println("generate:");
|
||||||
|
System.out.println(generate);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,24 +0,0 @@
|
|||||||
package cn.binarywang.wx.miniapp.api.impl;
|
|
||||||
|
|
||||||
import cn.binarywang.wx.miniapp.api.WxMaService;
|
|
||||||
import cn.binarywang.wx.miniapp.bean.shortlink.GenerateShortLinkRequest;
|
|
||||||
import cn.binarywang.wx.miniapp.test.ApiTestModule;
|
|
||||||
import com.google.inject.Inject;
|
|
||||||
import me.chanjar.weixin.common.error.WxErrorException;
|
|
||||||
import org.testng.annotations.Guice;
|
|
||||||
import org.testng.annotations.Test;
|
|
||||||
|
|
||||||
@Test
|
|
||||||
@Guice(modules = ApiTestModule.class)
|
|
||||||
public class WxMaShortLinkServiceImplTest {
|
|
||||||
@Inject
|
|
||||||
private WxMaService wxService;
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testGenerate() throws WxErrorException {
|
|
||||||
final String generate = this.wxService.getShortLinkService().generate(GenerateShortLinkRequest.builder().
|
|
||||||
pageUrl("pages/productView/editPhone/editPhone?id=31832").pageTitle("productView").isPermanent(false).build());
|
|
||||||
System.out.println("generate:");
|
|
||||||
System.out.println(generate);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user