各开放平台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序列化与反序列化等。
这次先写这么多,主要是前期的构思,希望各位园友提出宝贵的意见,以后如果有需要帮助的话,我也会尽力帮助回馈你们。还是那句话,一起学习,一起进步。
各开放平台API接口通用SDK序列文章 前言的更多相关文章
- 各开放平台API接口通用 SDK 前言
最近两年一直在做API接口相关的工作,在平时工作中以及网上看到很多刚接触API接口调用的新人一开始会感到很不适应,包括自己刚开始做API接口调用的相关工作时,也是比较抓狂的,所有写一序列文章把之前的工 ...
- 开放平台API接口安全策略汇总
在设计开放平台接口过程中,往往会涉及接口传输安全性相关的问题,本文对接口加密及签名的相关知识做了一个总结,在方便自己查阅的同时也分享给大家做一些参考. 接口安全性问题思考 接口安全性问题主要来源于几方 ...
- Java对接拼多多开放平台API(加密上云等全流程)
前言 本文为[小小赫下士 blog]原创,搬运请保留本段,或请在醒目位置设置原文地址和原作者. 作者:小小赫下士 原文地址:Java对接拼多多开放平台API(加密上云等全流程) 本文章为企业ERP(I ...
- Java生鲜电商平台-API接口设计之token、timestamp、sign 具体架构与实现(APP/小程序,传输安全)
Java生鲜电商平台-API接口设计之token.timestamp.sign 具体设计与实现 说明:在实际的业务中,难免会跟第三方系统进行数据的交互与传递,那么如何保证数据在传输过程中的安全呢(防窃 ...
- 百度AI开放平台- API实战调用
百度AI开放平台- API实战调用 一. 前言 首先说一下项目需求. 两个用户,分别上传了两段不同的文字,要计算两段文字相似度有多少,匹配数据库中的符合条件的数据,初步估计列出来会有60-1 ...
- 开放平台(接口)开发-1-天气API接口大全
前几天有个公司让准备一下第二次面试.应聘的是IOS开发实习生,可是之前一直做android,IOS刚接触了一个月,会的不是非常多,所以决定做一个实际的项目展现给面试官,余同学给了个建议:能够做一 ...
- 如何使用OLAMI自然语言理解开放平台API制作自己的智能对话助手小程序
我们经常在电影中看到机器和人对答如流,随着越来越多自然语言开放平台的出现,IT爱好者制作一个自己的APP或者小玩具等逐渐可以变为现实. 自然语言对话即你的APP或者你制作的工具.机器人等能够对用户输入 ...
- 微信小程序,天气预报(百度地图开放平台API)
小程序看似一种全新的东西,但好在基本上就是曾经HTML,CSS,JS的一个微变版本. 语法和之前一样.只是一些用法和名字(标签)发生了一些变化. 小程序主要就四种扩展名的文件:js,json,wxml ...
- 互联网开放平台API安全设计
互联网开放平台设计1.需求:现在A公司与B公司进行合作,B公司需要调用A公司开放的外网接口获取数据,如何保证外网开放接口的安全性.2.常用解决办法:2.1 使用加签名方式,防止篡改数据2.2 使用Ht ...
随机推荐
- Jfinal数据库操作语句中占位符的使用
占位符的优点: 1.增加SQL代码可读性 2.占位符可以预先编译,提高执行效率 3.防止SQL注入 4.用占位符的目的是绑定变量,这样可以减少数据SQL的硬解析,所以执行效率会提高不少 假设要将id从 ...
- C#文件下载(适用于各个浏览器)
1.cs代码 public void DownFile(string filePath ,string fileName ) { // filePath 文件路径 例如:/File/记录.xlsx / ...
- Node.js项目APM监控之New Relic
现在上一个项目,如果没有APM监控服务或应用的运行性能参数,等于是一架没有盲降系统的飞机正在盲降,结果会很悲催.出现了访问失效等问题时,都很难判定是性能瓶颈还是一个藏的深的bug,汇报的时候一顿眼晕, ...
- Centos7通过Docker安装Sentry(哨兵)
Docker介绍 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制, ...
- POJ1845-Sumdiv大数约数和
题目链接:http://poj.org/problem?id=1845 题目大意: 求A^B的所有约数和s.A和B都很大(0<=A,B<=50000000). 题目分析: 这道题让我学会了 ...
- Git详细教程---多人协作开发
Git可以完成两件事情: 1. 版本控制 2.多人协作开发 如今的项目,规模越来越大,功能越来越多,需要有一个团队进行开发. 如果有多个开发人员共同开发一个项目,如何进行协作的呢. Git提供了一个非 ...
- JAVA中线程的状态
java thread的运行周期中, 有几种状态, 在 java.lang.Thread.State 中有详细定义和说明: NEW:至今尚未启动的线程的状态. RUNNABLE:可运行线程的线程状态. ...
- libsvm参数选择
以前接触过libsvm,现在算在实际的应用中学习 LIBSVM 使用的一般步骤是: 1)按照LIBSVM软件包所要求的格式准备数据集: 2)对数据进行简单的缩放操作: 3)首要考虑选用RBF 核函数: ...
- 【设计模式】单一职责原则(SRP)
单一职责原则是面向对象原则五大原则中最简单,也是最重要的一个原则, 他的字面定义如下: 单一职责原则(Single Responsibility Principle, SRP): 一个类只负责一个功能 ...
- 用python实现对图像的卷积(滤波)
之前在看卷积神经网络,很好奇卷积到底是什么,最后看到了这篇文章http://blog.csdn.net/zouxy09/article/details/49080029,讲得很清楚,这篇文章中提到了对 ...