JSON,REST,SOAP,WSDL和SOA:它们如何链接在一起

目前正在做一些考试,我正在努力通过一些概念。 这些在我的笔记中都被“提及”了,但我并不真正了解它们是如何联系在一起的。 据我的理解是:

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

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

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

REST - 一种类似于SOAP的设计模式,但避免使用XML? (真的不知道这个)

JSON - 使用JavaScript的XML的替代方法? (不知道这个或者)

环顾互联网,似乎并没有明确定义所有这些以及它们如何相互关联。


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

您创建一个API并让其他人也可以在其上实现自己的前端。 你刚才在这里做的是实现一个SOA方法,即使用Web服务。

Web服务使功能构建块可以通过标准Internet协议访问,而不受平台和编程语言的影响。

因此,您设计了处理和生成有用内容的后端(Web服务)与前端(消耗数据)之间的交换机制,这可能是任何事情。 (Web,移动或桌面应用程序或其他Web服务)。 这里唯一的限制是前端和后端必须“说”相同的“语言”。


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

肥皂:

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

休息:

REST是一个设计概念。

万维网代表符合REST架构风格的系统的最大实现。

它不像SOAP那样僵化。 REST风格的Web服务使用标准URI和方法来调用Web服务。 当你请求一个URI时,它返回一个对象的表示 ,然后你可以对它进行操作(例如GET,PUT,POST,DELETE)。 您不仅限于选择XML来表示数据,您可以真正挑选任何内容(包括JSON)

Flickr的REST API更进一步,并且可以让您返回图像。


JSON和XML在功能上是等效的,并且可以选择。 XML被认为太冗长,而且很难解析,所以很多次数据都使用JSON更充分地表示。 (例如序列化)

尽管如此,仍然是一种选择。


WSDL :代表Web服务描述语言

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

REST :代表具有代表性的状态转移

它是另一种API服务,它非常易于客户使用。 它们不需要像WSDL文件那样具有特殊的文件扩展名。 CRUD操作可以通过不同的HTTP Verbs来实现(GET用于读取,POST用于创建,PUT或PATCH用于更新,DELETE用于删除所需的文档),它们基于HTML协议,大部分时间响应以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字符串中创建一个关联数组。 与以前描述的其他概念相比,这是一个不同的概念。

链接地址: http://www.djcxy.com/p/12365.html

上一篇: JSON, REST, SOAP, WSDL, and SOA: How do they all link together

下一篇: Compare and contrast REST and SOAP web services?