目前正在做一些考试,我正在努力学习一些概念。我的笔记中确实“提到”了所有这些内容,但我并不真正了解它们如何相互联系。据我了解:
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那样严格。RESTful Web服务使用标准URI和方法来调用Web服务。当您请求URI时,它返回一个对象的 表示 ,然后您可以对其执行操作(例如GET,PUT,POST,DELETE)。您不仅限于选择XML来表示数据,还可以选择任何东西(包括JSON)
Flickr的REST API更进一步,还可以让您返回图像。
JSON 和 XML 在功能上是等效的,是常见的选择。还有一些基于RPC的框架,例如基于Protobufs的GRPC和Apache Thrift,可用于API生产者和消费者之间的通信。Web API使用的最常见格式是JSON,因为它易于使用和解析每种语言。