【博主SAP/ABAP交流群689746838】
在实际开发中,经常会碰到两个不同平台的系统之间需要互相交互,现在这种交互主流的做法之一是用HTTP,HTTP相关的技术还是很多的,我归纳总结出了三个基本步骤。
一,网络互通
比如两个系统都在同一个内网网段或者都在公网上。这个时候可以用一些简单的方法来测试,比如用ping命令,在浏览器里输入网址,或者调用一些简单的测试API,先保证网络是通的,再继续下一步。
二,身份验证
之后就是身份验证,就是确保请求者(客户端)的身份是可信任的,基于HTTP的身份验证有很多种,最简单的就是basic验证,也就是用户名和密码验证,这种验证方式不算很安全,但是方便,也不需要在客户端安装额外的软件或者插件,所以对于用户群体主要是个人用户的情况下一般是用这种方式,对于企业用户企业用户来说,为了提高安全性,会使用证书验证等更加高级的验证方式。常见的SHA,X.509,SAML,OAuth等技术都是属于密钥验证或者证书验证等范畴,这些技术深入了解的话可以有很多内容,不过这些技术都是为了身份验证这个目的。
HTTP客户端有很多工具,最基本的的就是浏览器(浏览器里输入网址其实就是调用HTTP的Get方法),其他常见的比如有SoapUI和Postman等,各种开发平台(比如ABAP,Java,C#)也会有自己的HTTP客户端类供开发者调用,他们的原理和实现方式是大同小异的,但是要注意的是,并不是所有的客户端工具都支持所有的验证方式的,这要看这个工具的开发者是否开发了相关的功能。一般来说basic验证是所有这类工具都支持的,其他的验证方式就要看具体客户端了。不过这些验证方式主要是为了浏览器而设计的,所以浏览器基本都是支持的。
三,传递参数
这一步就是怎么通过HTTP方法传递并返回数据,HTTP方法能够传递数据的主要是三个地方,URL,Header和Body,理论上可以把想传递的数据放在这三个地方中任意一处,不过在实际开发里还是有一些规范的。在目前主流的RESTful调用方式里,URL一般只是用来存放查询,更新和删除的主键的;Header是用来放HTTP调用配置的,比如Content-Type等;而Body才是用来放实际的业务数据的。简单的调用,比如Body就是一个JSON文本;复杂的调用,比如batch处理或者上传文件,Body就会比较复杂,有一定的格式。
以上这三个步骤是用HTTP进行数据交互的做法的总结,具体涉及的技术可以参考各种相关的书籍和资料。另外,虽然这里是讲HTTP,但这个思路可以用在任意系统的交互设计上。