restful API、SOAP、RPC的区别

首先,我们要先知道什么是restful API、SOAP和RPC

restful API:一种架构设计风格,提供了设计原则和约束条件,而不是架构,是满足了这些约束条件和原则的应用程序或者设计就是restful 架构或者服务。

restful的优点:可以看作是http协议的一种直接应用,默认是基于json作为传输格式,使用简单返回格式一般为json_decode($code,$msg,$data),是对api接口的一种约定,方便调用。

restful的缺点:安全性比较低,没有得到一些语言的支持。

SOAP:是一种数据交换协议规范,是一种轻量的、简单的、基于XML的协议的规范。

优点:易用,灵活,跨语言,跨平台。

缺点:

RPC:简单的说,RPC就是从一台机器(客户端)上通过参数传递的方式调用另一台机器(服务器)上的一个函数或方法(可以统称为服务)并得到返回的结果。

RPC会隐藏底层的通讯细节(不需要直接处理socket通讯或http通讯)。

RPC是一个请求响应模型。客户端发起请求,服务器返回响应(类似于http的工作方法)。

RPC在使用方式上像调用本地函数一样(或方法)去调用远程的函数(或方法)。

RPC(Remote Process Call)是远程进程调用,不管你通过HTTP协议也要,Socket协议也罢,能够调用远程规定好的接口就可称之为RPC。

而restful API和SOAP,二者各有自己的使用场景。如果创建的分布式服务要求较好的安全性,对于传输等底层实现要求较强的可定制性,可以考虑SOAP;如果要求设计实现简单,一般来说安全性要求不高可以考虑REST。这只是一般情况,但偏于面向资源的服务使用REST有天然的优势。

 

你可能感兴趣的:(API接口开发常见的各种方法)