记得刚工作就开始纠结接口这个问题,纠结到现在,总算是从头到尾摸索了一遍。
首先,服务端接口,是指我这个系统作为服务,然后其他的系统来调我。首先,接口,双方会定义一定的规范,即我这个系统,和调用我这个系统的其他系统会约定传入什么,返回什么,当然我这个系统是主导,因为别人是要从我这个系统取数据。取数据肯定是要有条件的,所以,会有请求数据,当然我肯定不是把所有数据都给别个,所有会按照条件取数据,然后返回需要响应的数据。
那客户端接口呢?很显然,上面例子中的别个方,肯定要写一个客户端接口,来调用我的服务端接口。
客户端接口传递的是请求报文。
服务端接口传递的是响应报文。
接口之间相互是怎样调用的呢?这个前面有说到socket通信啥的,对,就是通过报文调,但是这其中我觉得最难的是报文的封装和解析,不过,这个都有好多现成的jar包,直接调方法简单封装一下就好,而且这些大多数是不需要自己开发的,一边项目设计的时候,这些东西都已写好,作为普通的开发,只管调用。报文的封装,解析直接调方法便好。
其实服务端接口就是有个程序一直在监听某个端口,然后如果客户端发来请求,服务端会根据请求报文进行解析,然后找到对应的接口,进行逻辑处理,然后返回响应报文,然后客户端收到响应报文,就可以解析,然后就拿到了调接口获取的数据。
而且,客户端接口和服务端接口是相对而言。即你要获取别人系统的数据,别人也可能想获取你系统的数据,怎么实现呢,那就是调接口嘛。
当然,获取数据还有其他方式,比如说取文件用sftp。这种一般是获取大量数据,不是一条一条的,一般用跑批来做,跑批就是在相对来说空闲时间做一些批量操作(操作数据库)吧。