目前正在做一些考试,我正在努力解决一些概念。这些确实在我的笔记中“提到”过,但我并不真正理解它们是如何联系在一起的。据我的理解是:
SOA - 一种使服务消费者/提供者进行通信的解决方案。 (据我所知,这是其他一切的总称)
WSDL - 一种描述提供者服务的语言。
SOAP - 服务用来发送消息的 XML 协议“包装器”。与 WSDL 结合使用以提供参数?
REST - 一种功能类似于 SOAP 但避免 XML 的设计模式? (这个真的不太确定)
JSON - 使用 javascript 的 XML 替代方案? (也不确定这个)
环顾互联网,似乎没有明确定义所有这些是什么以及它们如何相互联系。
想象一下,您正在开发一个 Web 应用程序,并且您决定将功能与应用程序的表示分离,因为它提供了更大的自由度。
您创建一个 API,并让其他人也通过它实现自己的前端。您刚刚在这里所做的是实施一个SOA http://en.wikipedia.org/wiki/Service-oriented_architecture#Web_services_approach方法,即使用网络服务。
Web 服务使功能构建块可以通过标准访问
互联网协议独立于平台和编程语言。
因此,您在后端(Web 服务)和前端(消耗数据)之间设计一种交换机制,后端(Web 服务)负责处理和生成有用的内容,前端(使用数据)可以是任何东西。 (网络、移动或桌面应用程序,或其他网络服务)。这里唯一的限制是前端和后端必须“说”相同的“语言”。
这就是 SOAP 和 REST 发挥作用的地方。
它们是您选择与网络服务通信的标准方式。
SOAP:
SOAP http://www.w3.org/TR/2007/REC-soap12-part1-20070427/#firstexample内部使用 XML 来回发送数据。 SOAP 消息具有严格的结构,并且需要解析响应 XML。WSDL是可以发出哪些请求、使用哪些参数以及它们将返回什么的规范。它是 API 的完整规范。
REST:
REST是一种设计理念。
万维网代表了系统的最大实现
符合REST架构风格。
它不像 SOAP 那样严格。RESTful Web 服务 https://en.wikipedia.org/wiki/Representational_state_transfer使用标准 URI 和方法来调用 Web 服务。当您请求 URI 时,它会返回表示对象的,然后您可以对其执行操作(例如 GET、PUT、POST、DELETE)。您不限于选择 XML 来表示数据,您实际上可以选择任何内容(包括 JSON)
Flickr 的 REST API 更进一步,还允许您返回图像。
JSON and XML,是功能等效且常见的选择。还有基于 RPC 的框架,例如基于 Protobufs 的 GRPC 和 Apache Thrift,可用于 API 生产者和消费者之间的通信。 Web API 最常用的格式是 JSON,因为它在每种语言中都易于使用和解析。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)