感谢大家光临我的博客!一起努力、共同进步 --cc--

cang2012

导航

各开放平台API接口通用SDK序列文章 前言

       最近两年一直在做API接口相关的工作,在平时工作中以及网上看到很多刚接触API接口调用的新人一开始会感到很不适应,要看的文档一大堆,自己要调用的接口找不着,或都找着了不知道怎么去调用,记得包括自己刚开始做API接口调用的相关工作时,也是比较抓狂的,也是硬着头皮去看各种文档,熟悉代码,在网上不断地去查找资料。所以决定写一序列文章把之前做的API接口相关的工作做个总结,二来写一个通用SDK把之前涉及到的代码封装成类库,以便以后可以更好地使用。就不用再重创轮子了,三来对一些有需要的朋友,比如刚接触API接口调用的朋友来说,希望可以给他们提供一些帮助,一起交流,共同成长,一起进步。

      今天这篇文章主要是谈一下自己的需求构想,SDK产品相对来说还是涉及到的东西不多,同时也希望园内的朋友提出自己宝贵的意见,如果感兴趣的朋友也可以参与起来。还是那句话,共同学习,共同成长。作为一个超过10年工作经验的老鸟来说,或多或少还是可以给一个刚毕业或工作时间不长的开发人员提供一些帮助的。这个就是看你们有没有兴趣了,还有是不是想学一些相关的东西。

      首先代码开源,放在github或类似的代码托管库上,使用git作为源代码管理器。便于与代码托管库交互。开源环境下使用git也是最好的。下篇将代码托管地址贴出来。

      下面再聊聊为什么要做通用SDK呢,因为之前一直在做API接口相关的工作,各大平台的API接口调用规则各不相同,而且现在的产品一般也不光与一家公司做接口API对接,所以通用SDK很有必要。

      通用API接口SDK前期先把框架搭建起来。做成包含封装、扩展以及多态的软件项目。同时容易上手与使用,最主要的还是要容易上手与使用。对于刚接触的人来说尤其重要,他们希望很快搞定接口调用相关的工作,比如说微信公众平台获取用户信息,他们不希望找很久才知道怎么使用。

      之前看过像淘宝开放平台,微信公众平台、百度,饿了么等各大平台的SDK,对于SDK涉及到的模块大致有一个了解。首先是为了封装参数,安全签名,获取响应,少数SDK还有消息服务。

      涉及到的代码模块主要有日志、对象的格式转换Json与XML。请求参数与响应参数的封装,接口调用,还包括像错误码,异常处理,签名等安全方面的请求,API接口地址与名称。

      最后还有就是使用C#作为开发语言。看了很多平台都没有提供.NET语言的SDK,说明.NET使用的人确实变少了,但是我一直使用的就是.NET C#语言,其他的语言很少使用。所以望各位见谅。开发环境是使用VS2013还是15要再想想。

      SDK设计思想主要还是模仿HTTP协议请求,Restual API接口也是基于HTTP协议的方法直接对资源进行操作,服务器对客户端请求作出响应,请求包含了安全验证防篡改相关的请求参数,一般包括AppKey,AppSecret,以及根据请求参数算出来的签名Signature,还有防重发的时间戳。

      主要需要设计的核心接口与类包含请求接口,它是具体请求类的所有基类,封装请求API名称与请求参数。响应接口主要封装响应的状态码与状态描述,主要是装请求返回响应让调用者很好的知晓请求状态,便于定位问题所在,提高调试效率。还有一个主要进行封装的类包括客户端调用,它的主要作用是封装客户端调用。它接收请求参数,对请求作出响应,响应结果可以使用Json与XML两种形式返回。

      另外公共方法包括像签名,验证,还有MD5与SHA1加解密、JSON序列化与反序列化,XML序列化与反序列化等。

      这次先写这么多,主要是前期的构思,希望各位园友提出宝贵的意见,以后如果有需要帮助的话,我也会尽力帮助回馈你们。还是那句话,一起学习,一起进步。

posted on 2017-06-24 08:20  C-x-C  阅读(3045)  评论(4编辑  收藏  举报