一,背景

一个公司的不同项目或者不同公司的项目交互方式一般是http方式,当业务方需要对接某服务功能的时候,一般是要接口文档,按照服务提供方已有的接口文档的规范去对接接口。(如果你们公司所有项目都是用同一种开发语言,同一个注册中心,并且不提供对外openApi,忽略我这篇文章)。

这种方式的对接接口存着很大的沟通成本,特别是在接口需要一些权限校验的场景,比如:token验证,签名验签等,这一块都需要有约定好的各种规则。这些规则往往存在人为的一些干扰因素,包括约定规则的复杂度,文档的齐全度,功能接口的设计完善度和合理度等,会影响对接难易程度。

javasdk开发包(手写一个业务中台java版sdk)(1)

所以后面就衍生了通过sdk方式提供对接加文档的方式。目前阿里云,腾讯云提供等提供的产品服务基本都是sdk的方式例如:阿里一键登录,阿里apppush,腾讯内容校验等。

这种对接方式非常便捷,我们只需要引入sdk,并填充我们需要的实体字段就能完成对接,真的可以说对接零成本零沟通。

二,sdk方式优缺点

优点: 1,屏蔽接口的各种权限和规则校验细节 2,接入方能更快速地接入。 3,有效减少沟通成本。缺点: 1,需要维护好sdk的版本。

2,为了满足不同开发语言的需求,需要开发不同语言的sdk来支持,需要耗费人力。(当然目前也有根据文档自动生成的开源项目 例如:Swagger CodeGen,当然但对于有强烈洁癖症的人来说,生成的东西可能会不太满意,更倾向于定制化做改造)

三,http方式sdk本质

这种发http请求的sdk,在于sdk需要提供接口的入参,出参,鉴权的校验规则和提供统一的发送http请求工具,屏蔽接口的各种业务细节,调用方只关心所需的业务参数即可。

四,手写一个http请求的sdk

这里我们以java语言为例手写一个http请求的sdk

第一步编写sdk项目

新建java工程,然后引进http请求的工具类这里我们用hutool提供的工具类来做实验1)项目工程包结构如下

javasdk开发包(手写一个业务中台java版sdk)(2)

2)编写UserClient

javasdk开发包(手写一个业务中台java版sdk)(3)

3)打包发布到仓库生成依赖

<dependency> <groupId>httpsdk</groupId> <artifactId>httpsdk</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency>

第二步测验sdk项目使用

javasdk开发包(手写一个业务中台java版sdk)(4)

引入的sdk版本依赖,能正常访问接口并响应。

最后说一句

感谢您的阅读,您的正向反馈是我持续创作的动力,十分期待欢迎您的关注!

,