当前位置: > 财经>正文

接口(服务)之间的调用方式有哪些?/软件系统之间接口的几种通讯方式?

2023-07-15 08:44:33 互联网 未知 财经

接口(服务)之间的调用方式有哪些?/软件系统之间接口的几种通讯方式?

常见的接口调用方式有三种(设计接口的时候要考虑选用哪种接口)

1、http接口:http是一种网络传输协议,基于TCP。(等价于:http+json) 现在浏览器客户端与服务器端通信基本都是采用http协议。 SpringCloud框架,各个服务间也是通过http方式来实现的。 http api接口是走http协议,通过路径来区分调用的方法,请求报文都是key-value形式的,返回报文一般都是json串。 http有几个特点: (1)规定了数据格式 (2)对服务没有任何技术限定,自由灵活,更符合为服务理念。 (3)现在热门的REST风格 / RESTful 风格,就可通过Http协议来实现。

请求方式:post/get/put/delete 等。 传输的数据格式(一般而言):JSON

2、rpc接口:远程过程调用(类似的还有RMI),基于TCP。 自定义数据式,基于原生TCP通信,速度快,效率高。 现在热门的dubbo框架,就是RPC的典型代表。 rpc有几个特点: (1)数据的格式可以自定义(一般是XML)。 (2)速度快,效率高。 (3)现在比较热门的dubbo就是RPC的典型代表。

传输的数据格式:XML

3、webservice接口:Webservice是系统对外的接口。(等价于:http+xml) webService接口是走soap协议通过http传输,请求报文和返回报文都是xml格式的。 webService接口提供的服务是基于web容器的,底层使用http协议,类似一个远程的服务提供者,比如天气预报服务,对各地客户端提供天气预报,是一种请求应答的机制,是跨系统跨平台的。就是通过一个servlet,提供服务出去。

首先客户端从服务器的到WebService的WSDL,同时在客户端声称一个代理类(Proxy Class) 这个代理类负责与WebService服务器进行Request 和Response 当一个数据(XML格式的)被封装成SOAP格式的数据流发送到服务器端的时候,就会生成一个进程对象并且把接收到这个Request的SOAP包进行解 析,然后对事物进行处理,处理结束以后再对这个计算结果进行SOAP包装,然后把这个包作为一个Response发送给客户端的代理类(Proxy Class),同样地,这个代理类也对这个SOAP包进行解析处理,继而进行后续操作。这就是WebService的一个运行过程。

webservice大体上分为5个层次:

Http传输信道XML的数据格式SOAP封装格式WSDL的描述方式UDDI UDDI是一种目录服务,企业可以使用它对Webservices进行注册和搜索

应用协议是SOAP(简单对象访问协议) 传输的数据格式:XML

4、总结1(接口的选择) 现在很多第三方接口,都改成了基于http,直接传递json数据的方式来代替webservice。 但是webservice接口能传输数据量比较大的数据,而且可以跟语言无关,也可以跟操作系统无关。 在某些业务复杂,稳定性和正确性要求高的领域(如ERP、电商、支付),WebService还有是用武之地的。

5、总结2(传输数据格式的选择) 为什么JSON比XML流行 还是易用性,JSON的可读性比XML强,解析规则也简单许多。 XML 解析的时候规则太多了,动不动就非法字符,动不动就抛异常。这对追求高开发速度和低开发门槛的企业来说,是个致命伤。

JSON的缺点是数据类型支持较少,且不精确。比方说:

{"price":12580}

在json里,你无法知道这个价格是int, float还是double。

所以,如上面第二条所述,在一些业务要求较高的领域,还是XML更合适。

最后说一下性能, JSON 的性能高于XML,除此之外,基于 XML 和 HTTP 的 WebService , 基于 JSON 的RESTful API ,并没有性能差异。

6、学习

版权声明: 本站仅提供信息存储空间服务,旨在传递更多信息,不拥有所有权,不承担相关法律责任,不代表本网赞同其观点和对其真实性负责。如因作品内容、版权和其它问题需要同本网联系的,请发送邮件至 举报,一经查实,本站将立刻删除。