如何更优雅的对接第三方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(建议注册账号免费申请)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值