关于调用三方平台接口与推送接口的总结<二>(2020.7.27)
前言:本篇博客是接着上篇总结写的,想了解怎么对接第三方平台接口的同学可以看我上一篇博客,地址是 https://www.cnblogs.com/alanturingson/p/13377500.html ,本篇将介绍如何封装接口给第三方平台来调用。
正文开始:
既然是对接快递平台,那么无非就有两种对接的模式。第一种,是本方去调用第三方的接口,例如快递查询接口、路由查询接口、路由订阅接口等。这些都需要本方主动去请求三方提供的url,按照三方要去的请求参数来推送参数获得数据。第二种,与第一种相反,是三方调我们的接口。例如路由推送接口等。这种模式需要本方封装一个接口,并提供地址给第三方,然后第三方来调我们自己的接口从而实现我们封装的接口实现的逻辑。
今天我们说说第二种,三方调用本方接口。
二、三方来调用本方接口(注:本文以申通路由推送接口为例,可以参照申通官方文档 https://open.sto.cn/#/apiDocument/STO_TRACE_PLATFORM_PUSH ,以便理解)
在上一篇中,我们介绍调用三方接口的时候,是我们按照三方的要求来,按照他给的参数进行入参请求。那么我们写接口给三方来调,是不是就需要三方完全按照我们的要求来呢?其实并不是,为了让三方调用我们接口,我们需要首先去与三方沟通,拿到他们的请求参数格式,按照他们请求参数的格式,来设计我们的接口(ps:没错,就是这么的卑微,毕竟三方才是爸爸0^0)。在拿到三方的标准格式后,我们就可以设计接口了。与主动调用在manager层写代码不同,被动接受调用,需要从manager层到service层再到controller层,三层设计封装然后接口才算完成。
1.manager层
在manager层,我们依然可以使用调用三方接口的apimanager类,以及三层请求与三层返回类,这里需要改的是请求与返回的第三层类,具体代码如下:
1.1申通路由推送接口请求类:
@EqualsAndHashCode(callSuper = true)
@Data
public class StoTracePushRequest extends BaseStoRequest<StoTracePushResponse> { @Override
public String apiName() {
return getApiName();
} public static String getApiName() {
return "STO_TRACE_PLATFORM_PUSH";
} @Override
public String toAppKey() {
return null;
} @Override
public Class<StoTracePushResponse> getResponseClass() {
return StoTracePushResponse.class;
} /**
* 运单号
*/
private String waybillNo; /**
* 订单号
*/
private String linkCode; /**
* 轨迹信息
*/
private StoTracePushInfo trace;
}
1.2 申通路由推送接口返回类:
public class StoTracePushResponse extends BaseStoResponse<StoTracePushDTO> {
}
这里的 StoTracePushDTO 类,是申通api文档里注明的响应参数,大家可以依据具体的规范设计,代码我也放出来吧:
@Data
public class StoTracePushDTO { /**
* 运单号
*/
private String waybillNo; /**
* 是否需要重试: 用于正常收到请求,但程序处理异常时,可以传true,不管success是true还是false,申通侧都会重新推送;
*/
private Boolean needRetry;
}
那么manager层的设计就到这里了,apiManeger类的话在上一篇博客里面有发出来,这里不做任何改动可以直接调用。
2.Service层 (任务来了,下次在更)
关于调用三方平台接口与推送接口的总结<二>(2020.7.27)的更多相关文章
- PHP版微信公共平台消息主动推送,突破订阅号一天只能发送一条信息限制
2013年10月06日最新整理. PHP版微信公共平台消息主动推送,突破订阅号一天只能发送一条信息限制 微信公共平台消息主动推送接口一直是腾讯的私用接口,相信很多朋友都非常想要用到这个功能. 通过学习 ...
- Android平台摄像头/屏幕/外部数据采集及RTMP推送接口设计描述
好多开发者提到,为什么大牛直播SDK的Android平台RTMP推送接口怎么这么多?不像一些开源或者商业RTMP推送一样,就几个接口,简单明了. 不解释,以Android平台RTMP推送模块常用接口, ...
- .net平台借助第三方推送服务在推送Android消息(极光推送)
最近做的.net项目(Windows Service)需要向Android手机发送推送消息,真是有点困难,没有搞过就不停的搜文档,最后看到了一个开源项目PushSharp,可以在.net平台推送IOS ...
- ASP.NET 微信公众平台模板消息推送功能完整开发
最近公众平台的用户提出了新需求,他们希望当收到新的邮件或者日程的时候,公众平台能主动推送一条提醒给用户.看了看平台提供的接口,似乎只有[模板消息]能尽量满足这一需求,但不得不说微信提供的实例太少,而且 ...
- 如何使用Postman调试HMS Core推送接口?
HMS Core推送服务支持开发者使用HTTPS协议接入Push服务端.Postman是一款接口测试工具,它可以模拟用户发起的各类HTTP请求,将请求数据发送至服务端,获取对应的响应结果.Postma ...
- asp.net 实现微信公众平台的主动推送信息
通过学习借鉴朋友的实现方法进行整理(微信公众帐号主动发送消息给用户,asp.net版本). /// <summary> /// MD5 32位加密 /// </summary> ...
- AppDelegate减负之常用三方封装 - 友盟推送篇
之前分享过集成友盟推送的方法, 需要的朋友可以查看一下链接: http://www.cnblogs.com/zhouxihi/p/6533058.html 一般开发中我们比较多使用的三方有友盟推送, ...
- C#微信接口之推送模板消息功能示例
本文实例讲述了C#微信接口之推送模板消息功能.分享给大家供大家参考,具体如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2 ...
- 微信公众平台设置URL和Token接收接口事件推送
最近做对接微信闪开发票-微信发票名片,里面有个接收用户提交抬头接口是微信推送事件到公众号后台,该事件将发送至开发者填写的URL(登录公众平台进入[开发者中心设置]). 开发者可通过事件推送完成数据统计 ...
随机推荐
- vue全家桶(4.3)
5.3.Vuex的核心概念 store: 每一个 Vuex 应用的核心就是 store(仓库)."store"基本上就是一个容器,它包含着你的应用中大部分的状态 (state) s ...
- 6.30集训模拟赛4(炸裂的一天qwq)
T1浇水: 题目描述 在一条长n米,宽m米米的长方形草地上放置着k个喷水装置.假设长方形草地的坐标范围为[ 0 , 0 ] ~ [ n , m ],那么第 i 个喷水装置的位置为(ai,m/2),也就 ...
- JVM垃圾回收概述
垃圾回收概述 什么是垃圾 什么是垃圾( Garbage) 呢? 垃圾是指在运行程序中没有任何指针指向的对象,这个对象就是需要被回收的垃圾. 如果不及时对内存中的垃圾进行清理,那么,这些垃圾对象所占的内 ...
- suprious weakup
线程wait情况下,有可能没有中断,没有唤醒,而返回, 称为spurious wakeup. wait在循环中,通过对condition的判断来决定是否继续wait. 概率比较低.
- Python 简明教程 --- 22,Python 闭包与装饰器
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 当你选择了一种语言,意味着你还选择了一组技术.一个社区. 目录 本节我们来介绍闭包与装饰器. 闭包与 ...
- C++中string转换为char*类型返回后乱码问题
问题来源: 在写二叉树序列化与反序列化时发现序列化函数为char* Serialize1(TreeNode *root) 其函数返回类型为char*,但是我在实现的过程中为了更方便的操作添加字符串使 ...
- BUUCTF-Misc-No.1
# BUUCTF-Misc # 签到 flag{buu_ctf} 金三胖 说实话直接看出来flag{he11ohongke} 二维码 直接binwalk扫一下,-e分离就出来一个带锁的zip爆破一下就 ...
- 数据可视化之powerBI入门(五)PowerQuery,支持从多种源导入数据
PowerBI的强大绝不仅是最后生成炫酷的可视化报告,她在第一步数据获取上就显示出了强大的威力,利用Power Query 的强大数据处理功能,几乎可以从任何来源.任何结构.任何形式上获取数据 htt ...
- 机器学习实战基础(十六):sklearn中的数据预处理和特征工程(九)特征选择 之 Filter过滤法(三) 总结
过滤法总结 到这里我们学习了常用的基于过滤法的特征选择,包括方差过滤,基于卡方,F检验和互信息的相关性过滤,讲解了各个过滤的原理和面临的问题,以及怎样调这些过滤类的超参数.通常来说,我会建议,先使用方 ...
- Spring cloud系列教程第十篇- Spring cloud整合Eureka总结篇
Spring cloud系列教程第十篇- Spring cloud整合Eureka总结篇 本文主要内容: 1:spring cloud整合Eureka总结 本文是由凯哥(凯哥Java:kagejava ...