最近两年一直在做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序列化与反序列化等。

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

各开放平台API接口通用SDK序列文章 前言的更多相关文章

  1. 各开放平台API接口通用 SDK 前言

    最近两年一直在做API接口相关的工作,在平时工作中以及网上看到很多刚接触API接口调用的新人一开始会感到很不适应,包括自己刚开始做API接口调用的相关工作时,也是比较抓狂的,所有写一序列文章把之前的工 ...

  2. 开放平台API接口安全策略汇总

    在设计开放平台接口过程中,往往会涉及接口传输安全性相关的问题,本文对接口加密及签名的相关知识做了一个总结,在方便自己查阅的同时也分享给大家做一些参考. 接口安全性问题思考 接口安全性问题主要来源于几方 ...

  3. Java对接拼多多开放平台API(加密上云等全流程)

    前言 本文为[小小赫下士 blog]原创,搬运请保留本段,或请在醒目位置设置原文地址和原作者. 作者:小小赫下士 原文地址:Java对接拼多多开放平台API(加密上云等全流程) 本文章为企业ERP(I ...

  4. Java生鲜电商平台-API接口设计之token、timestamp、sign 具体架构与实现(APP/小程序,传输安全)

    Java生鲜电商平台-API接口设计之token.timestamp.sign 具体设计与实现 说明:在实际的业务中,难免会跟第三方系统进行数据的交互与传递,那么如何保证数据在传输过程中的安全呢(防窃 ...

  5. 百度AI开放平台- API实战调用

    百度AI开放平台- API实战调用 一.      前言 首先说一下项目需求. 两个用户,分别上传了两段不同的文字,要计算两段文字相似度有多少,匹配数据库中的符合条件的数据,初步估计列出来会有60-1 ...

  6. 开放平台(接口)开发-1-天气API接口大全

     前几天有个公司让准备一下第二次面试.应聘的是IOS开发实习生,可是之前一直做android,IOS刚接触了一个月,会的不是非常多,所以决定做一个实际的项目展现给面试官,余同学给了个建议:能够做一 ...

  7. 如何使用OLAMI自然语言理解开放平台API制作自己的智能对话助手小程序

    我们经常在电影中看到机器和人对答如流,随着越来越多自然语言开放平台的出现,IT爱好者制作一个自己的APP或者小玩具等逐渐可以变为现实. 自然语言对话即你的APP或者你制作的工具.机器人等能够对用户输入 ...

  8. 微信小程序,天气预报(百度地图开放平台API)

    小程序看似一种全新的东西,但好在基本上就是曾经HTML,CSS,JS的一个微变版本. 语法和之前一样.只是一些用法和名字(标签)发生了一些变化. 小程序主要就四种扩展名的文件:js,json,wxml ...

  9. 互联网开放平台API安全设计

    互联网开放平台设计1.需求:现在A公司与B公司进行合作,B公司需要调用A公司开放的外网接口获取数据,如何保证外网开放接口的安全性.2.常用解决办法:2.1 使用加签名方式,防止篡改数据2.2 使用Ht ...

随机推荐

  1. Andriod相机开发关于startPreview Failed的错误的特别记录(重要)

    年前,自己做的Android相机嵌入到一款火爆的游戏中去了,经过几次的修改升级,相机运行上报的错误也越来越少, 但是,前几天刚上线的最新相机,却老是在Android 2.3机器上出现startPrev ...

  2. 二分图的最大匹配——最大流EK算法

    序: 既然是个图,并且求边数的最大值.那么这就可以转化为网络流的求最大流问题. 只需要将源点与其中一子集的所有节点相连,汇点与另一子集的所有节点相连,将所有弧的流量限制置为1,那么最大流 == 最大匹 ...

  3. 576. Out of Boundary Paths

    Problem statement: There is an m by n grid with a ball. Given the start coordinate (i,j) of the ball ...

  4. maven命令更新子父项目的pom版本

    Q:一个maven项目,有多个子module,在顶级父pom.xml里设置<version>1.0.0-SHAPSHOT</version>,在子pom.xml里都用了 < ...

  5. hdu2717Catch That Cow 简单BFS

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2717 刚开始思路错了,用的DP,一直WA,后来才发现是搜索,还是简单的BFS,顿时.... 思路: B ...

  6. Ubuntu server搭建Java web服务器

    1. 在Ubuntu server中安装ssh,如果是购买服务器的话,这已经是安装的了,包括vim 获取超级权限 先更新安装包 开始安装ssh ssh已经启动了 2. 安装Xshell并创建连接安装X ...

  7. Linux安装yum以及更新yum版本

    .使用RedHat系统不能正常使用yum安装 由于RedHat没有注册,所有不能使用它自身的资源更新,于是使用yum instatll gcc-c++的时候出现This system is not r ...

  8. java虚拟机--jvm client模式与server模式的区别

    JVM Server模式与client模式启动,最主要的差别在于:-Server模式启动时,速度较慢,但是一旦运行起来后,性能将会有很大的提升.JVM如果不显式指定是-Server模式还是-clien ...

  9. 浏览器播放rtsp流媒体解决方案

    老板提了一个需求,想让网页上播放景区监控的画面,估计是想让游客达到未临其地,已知其境的状态吧.    说这个之前,还是先说一下什么是rtsp协议吧. RTSP(Real Time Streaming ...

  10. javascript之深入剖析this

    this的重要性不言而喻,比如面试题经常考到,其次,如果彻底理解了this,那么对理解框架源码及编写高质量代码都有很大的帮助.本文就是要深入剖析this的几种情况,理解了原理,以后妈妈再也不用担心你的 ...