1.确定需要哪些接口
重点是要确定每个接口的具体功能。确保这些接口是必须的,功能相互间没有交叉。
2.接口设计及细节分析
针对每一个接口确定如下事项:
(1)发送参数名、参数含义、参数数据类型、长度、精度
(2)接收参数名、参数含义、参数数据类型、长度、精度
接口的使用的类型变量尽量通用,特别是对使用此接口的用户一无所知情况下,对方可能是Java,也可能是PHP,也可能是C#,不要使用某种编程语言的特定类型,比较好的一种方式是,参数和返回值都使用string类型,这样基本上的编程语言都能支持。
(3)发送信息时的数据格式:xml格式还是json格式
(4)网络传输时的编码格式。
虽然在网络传输时均是以字节的形式进行传输,但不同的编码格式生成的字节是不同的,因而需要对此进行统一。如果双方系统的编码格式不同则在进行数据处理时必须进行转码。
在确定发送数据时,还需考虑:
➢对方需要的数据自己系统是否存在,如果存在这些数据的格式是否和对方要求的一致,不一致如何进行处理。
➢如果不存在,是在自己系统中新增这些数据还是采取什么样的变通措施。
注意:当接口根据实际需要进行调整,同时更新详细设计文档,保持接口详细设计的可追溯性。(www.xing528.com)
3.确定数据交互的安全性
交互传输的数据中是否有敏感数据,如果有,如何处理?如果要加密,采用何种加密方式?接口是公开的还是受限定访问的?如果是受限定访问的,如何确定信息的发送方或者获取方是合法的,而不是冒仿者?
例如电子商务网站一般都会调用支付宝的接口进行付款,在传送基本的金额、通知url、用户名等信息外,支付宝为验证调用的合法性还需要传送“安全码、加密方式”等字段进行校验,以防止用户将货款付到其他人或公司的支付宝账户中。
在调用招商银行的支付接口时招商银行会限定IP,并且会用自己的客户端将发送信息按照分配的U盾进行加密处理。
4.编码
不要程序各个地方直接使用其它的系统的接口,最好是写一个类来封装其它系统的接口,如果其它系统的接口很多,可以专门建一个项目或包来管理这些类,这样当接口发生变化时(如接口名,接口方式),可以集中修改找一个类中的函数,而程序的其它地方都可以不用改,将“变化”限定在最小的范围内,将封装的优点大大的发挥出来。切忌在程序的各个地方直接调用其它系统的接口。
对于调用会产生数据交易的其它系统接口,一定要写Log,这对将来数据出错时,查找问题的根源很必要,特别是对方系统的接口没有写log时,一旦出现数据问题,往往会不知从何查起,是我们给的数据有问题,还是对方系统处理我们给的数据有问题?在最近的一个项目中,因为我们产生数据的逻辑很复杂,而对方接口收到我们产生的数据后,也会做一个很复杂数据交易动作,在系统上线初期,出现了很多莫名其妙的数据,而我们正是通过在调用对方接口时的写log数据,很快查出一些是我们生成的数据有问题,一些是对方处理数据有问题。
对接口接收过来的数据,最好进行数据效验,因为你不能保证其它系统会传给你完全符合标准的数据。对数据校验不通过的和执行失败的,最好能有清晰明了的提示返回给调用方。
5.测试
包括接口内部测试、修改,和第三方的联调。
6.上线
接口正式上线,测试通过则上线成功,失败则回退,并从第4步开始新一轮的测试,直到系统上线成功。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。