如何更优雅的对接第三方API
我们在日常开发过程中,有不少场景会对接第三方的API,例如第三方账号登录,第三方服务等等。第三方服务会提供API或者SDK,我依稀记得早些年Maven还没那么广泛使用,通常要对接第三方服务的时候会去下载第三方服务的SDK开发包,也就是jar包,拷贝到自己的工程中进行开发。但现如今,几乎所有的大中小企业都使用Maven进行依赖管理,第三方服务通过提供SDK包的情况越来越少,有的SDK也早已处于不再更新的状态。并且现在流行的微服务以及轻量级的RESTful通信方式,使得第三方服务主要提供API接口。
API接口,指的是通过HTTP的方式提供服务对接,也就需要对接方发起HTTP请求,解析第三方服务返回的数据;而SDK开发包,指的是对接方直接调用第三方服务提供的Java方法进行调用,不再对第三方服务发起HTTP请求。从便利性上讲,以SDK的方式对接第三方服务,的确能更加方便地进行开发对接工作。而从目前的趋势看,以RESTful通信的微服务正逐渐成为主流,服务的提供方也不再对外提供SDK开发包,因为这涉及开发量以及包的依赖问题。
我仍记得在第一家公司对接第三方API时的场景,业务要求能通过微信发起WiFi连接,这自然需要对接微信提供的API接口。那时我用了“最低级”的对接方式,也就是使用原生JDK发起HTTP请求,以及对HTTP响应的JSON数据进行解析获取我想要的数据。这其中的坑不胜其数,手写的HTTP请求客户端本身的不健壮,解析响应数据时经常抛出空指针,其中的苦恼不尽其数。
直到现在,SpringBoot为我们封装了RestTemplate
,再到SpringCloud可以通过Feign
让我们调用API就好像在调用接口一般顺滑。
Feign
诠释了什么是面向对象,什么是一切皆为对象,我甚至认为,它可以作为面向对象编程实践的典型。
所以本文将以下4个示例讲述如何优雅地对接第三方API。
- 原生JDK构造HTTP请求客户端,调用API
- 在SpringBoot下使用
RestTemplate
,以及抽取配置的方式调用API - 使用
OpenFeign
以及抽取配置的方式调用API
准备工作
第三方API提供方,聚合数据: https://o0b.cn/anzexi
API接口详情: https://o0b.cn/anzexi
appKey(建议注册账号免费申请)
如何更优雅的对接第三方API相关推荐
- 如何更优雅地对接第三方API
如何更优雅地对接第三方API 本文所有示例完整代码地址:https://github.com/yu-linfeng/BlogRepositories/tree/master/repositories/ ...
- 超简单的对接第三方API的微信支付(jsapi)。
我们从头开始: 1.首先导入依赖文件 <!--wx-pay-sdk 目前我用的版本是 3.8.0--><dependency><groupId>com.github ...
- 第三方API对接常见问题
JAVA项目中通常会需要通过对接第三方API来扩展项目业务,如支付,风控,语音识别,图像处理等.但看似简单的发送/接收请求却包含了Http请求,数据加密/解密,签名加签/验签,数据处理等内容.这次通过 ...
- 电商平台对接第三方快递鸟物流轨迹查询api接口申请对接全流程
电商平台对接第三方快递物流轨迹查询api接口申请对接全流程 快递鸟查询API接口是使用的物流单号即可实现查询物流信息.主要应用在电商商城.ERP系统商.WMS系统商.快递柜.银行等企业.多家快递物流公 ...
- 与第三方Api接口对接需要注意的点
与第三方Api接口对接需要注意的点 目录 一.非技术对接 二.技术对接 三.必要措施 四.常见错误解决 一.非技术对接 [重要]画出流程时序图 查看对方文档,积极沟通 本公司接口文档和图发对方确认,一 ...
- 对接第三方顺丰丰桥下单Api接口实战教程java
对接第三方顺丰丰桥下单接口实战 前言 pom文件顺丰依赖 Controller层 Service层 ServiceImpl实现类层 封装请求参数 顺丰丰桥下单响应参数 前言 在接入第三方顺丰Api之前 ...
- kubernetes认证,对接第三方认证系统,对接github认证
kubernetes对接第三方认证 广告: 安装包地址 原文地址 概述 本文介绍如何使用github账户去关联自己kubernetes账户.达到如下效果: 使用github用户email作为kuber ...
- Kubernetes更优雅的监控工具Prometheus Operator
Kubernetes更优雅的监控工具Prometheus Operator [TOC] 1. Kubernetes Operator 介绍 在 Kubernetes 的支持下,管理和伸缩 Web 应用 ...
- Java对接第三方支付渠道之支付宝支付
提示:支付宝相对于微信支付更人性化,且细节做得更好. Java对接第三方支付渠道之支付宝支付 一.前期准备工作 二.导入依赖 三.书写配置类 四.书写配置文件 五.调用相关支付接口 1.流程图 2.创 ...
最新文章
- C++11中std::function的使用
- 技术界与翻译界的交锋:机器翻译离我们还有多远? | 清华AI Time
- 2018.12.5 区块链论文翻译
- 行业发展之关于有用信息和无用信息的思考
- 你需要知道的10个最佳javascript开发实践
- HDU 4035 Maze
- .NET 6 新特性 Parallel ForEachAsync
- 项目学生:分片集成测试数据
- 黑马程序员顺义校区php_黑马程序员:从PHP零基础到月薪11K为何送锦旗给班主任?...
- web.config中的InProc模式 与 StateServer模式[转]
- JavaScript 原型对象和原型链
- Facebook广告系统及多账号操作经验分享
- ❤️今天,该让 python 上个热门❤️
- linux使用samba实现文件共享
- Tippy.js - 免费开源且高度可定制的气泡提示独立组件
- 贝塞尔曲线及实践案例
- mysql5.5升级到8_MySQL5.7升级到8.0过程详解
- 二进制转十进制 八进制 十六进制
- c语言 原子操作,原子操作
- 关于MCU M4内核移植FreeRTOS的笔记