JSON、 REST、 SOAP、 WSDL 和 SOA: 它们是如何连接在一起的

目前正在做一些考试,我正在努力通过一些概念。这些都已经在我的笔记中“提到”了,但我真的不明白它们是如何联系在一起的。据我所知:

SOA ——使服务使用者/提供者进行通信的解决方案。(据我所知,这是其他所有事情的总称)

WSDL-描述提供者服务的语言。

SOAP-服务用来发送消息的 XML 协议‘包装器’。与 WSDL 协同工作以提供参数?

REST-在功能上类似于 SOAP 但是避免使用 XML 的设计模式?(真的不知道这一个)

JSON-使用 javascript 的 XML 替代品? (这个也不确定)

环顾互联网,似乎没有一个明确的定义,所有这些是什么,以及它们如何相互联系。

130018 次浏览

WSDL : 表示 Web 服务描述语言

在 SOAP (简单对象访问协议)中,当您使用 Web 服务并将 Web 服务添加到项目中时,您的客户端应用程序不知道 Web 服务函数。现在,它有点过时了,对于每种不同的客户端,你必须实现不同的 WSDL文件。例如,不能对 .Netphp客户端使用相同的文件。 WSDL文件有一些关于 Web 服务功能的描述。这个文件的类型是 XMLSOAPREST的替代品。

REST : 代表 REST

它是另一种 API 服务,对于客户端来说非常容易使用。它们不需要像 WSDL文件那样有特殊的文件扩展名。CRUD 操作可以通过不同的 HTTP Verbs(用于读取的 GET、用于创建的 POST、用于更新的 PUT 或 PATCH 以及用于删除所需文档的 DELETE)来实现,它们基于 HTTP协议,大多数情况下响应是 JSONXML格式。另一方面,客户机应用程序必须通过确切的参数名称和类型精确地调用相关的 HTTP Verb。由于没有像 WSDL这样的特殊定义文件,所以这是一个使用端点的手动作业。但这并不是什么大事,因为现在我们有很多用于不同 IDE 的插件来生成客户端实现。

SOA : 代表面向服务的体系结构

包括所有带有 Web 服务概念和体系结构的编程。假设您想实现一个大型应用程序。一个实践可以是拥有一些不同的服务,称为微服务,整个应用程序机制将在正确的时间调用所需的 Web 服务。 RESTSOAP Web 服务都是 SOA的一种。

JSON : 代表 javascript Object Notation

当你为 javascript 序列化一个对象时,对象格式的类型是 JSON。 想象一下你有一个人类阶层:

class Human{
string Name;
string Family;
int Age;
}

这个类中有一些实例:

Human h1 = new Human(){
Name='Saman',
Family='Gholami',
Age=26
}

当您将 h1对象序列化为 JSON 时,结果是:

  [h1:{Name:'saman',Family:'Gholami',Age:'26'}, ...]

javascript可以通过 eval()函数计算这种格式,并从这个 JSON字符串得到一个关联数组。与我以前描述的其他概念相比,这是一个不同的概念。

假设您正在开发一个 Web 应用程序,并决定将功能与应用程序的表示分离,因为它提供了更大的自由度。

您创建了一个 API,并让其他人也通过它实现自己的前端。您刚才所做的就是实现一个 SOA方法,即使用 Web 服务。

Web 服务使得功能构建块可以通过标准访问 独立于平台和编程语言的 Internet 协议。

因此,您设计了后端(Web 服务)与前端(使用数据)之间的交换机制,后端(Web 服务)负责处理和生成有用的内容,前端(使用数据)可以是任何内容。(网络、手机、桌面应用程序或其他网络服务)。这里唯一的限制是前端和后端必须“说”同一种“语言”。


这就是 SOAP 和 REST 的用武之地。 它们是您选择与 Web 服务进行通信的标准方式。

SOAP:

SOAP 在内部使用 XML 来来回回地发送数据。SOAP 消息具有严格的结构,因此需要解析响应 XML。 WSDL 是关于可以发出什么请求、使用哪些参数以及它们将返回什么的规范。它是您的 API 的完整规范。

休息:

REST 是一个设计概念。

万维网代表了一个系统最大的实现 符合 REST 体系结构风格。

它不像 SOAP 那样严格。RESTful Web-services使用标准的 URI 和方法对 webservice 进行调用。当您请求一个 URI 时,它返回一个对象的 代表,然后您可以对它执行操作(例如 GET、 PUT、 POST、 DELETE)。您不限于选择 XML 来表示数据,实际上您可以选择任何东西(包括 JSON)

Flickr 的 REST API 更进一步,允许您返回图像。


JSON XML,在功能上是等价的,也是常见的选择。还有一些基于 RPC 的框架,比如基于 Protobufs 的 GRPC 和用于 API 生产者和消费者之间通信的 Apache Thift。Web API 最常用的格式是 JSON,因为它在每种语言中都很容易使用和解析。