本文概述
Web服务有两种类型:
- RESTful Web餐具
- SOAP Web服务
RESTful Web服务
REST代表代表性状态转移。它由Roy Thomas Fielding开发, 他还开发了HTTP。 RESTful Web服务的主要目标是使Web服务更有效。 RESTful Web服务尝试使用HTTP中已经存在的不同概念来定义服务。 REST是一种体系结构方法, 而不是协议。
它没有定义标准的消息交换格式。我们可以使用XML和JSON构建REST服务。 JSON是REST更流行的格式。密钥抽象是REST中的资源。资源可以是任何东西。可以通过统一资源标识符(URI)对其进行访问。例如:
该资源具有XML, HTML和JSON之类的表示形式。当前状态由代表性资源捕获。当我们请求资源时, 我们提供资源的表示形式。 HTTP的重要方法是:
- GET:读取资源。
- PUT:更新现有资源。
- POST:它将创建一个新资源。
- DELETE:删除资源。
例如, 如果我们要在社交媒体应用程序中执行以下操作, 我们将获得相应的结果。
POST / users:创建一个用户。
GET / users / {id}:它检索一个用户的详细信息。
GET / users:它检索所有用户的详细信息。
DELETE / users:删除所有用户。
DELETE / users / {id}:删除用户。
GET / users / {id} / posts / post_id:它检索特定帖子的详细信息。
POST /用户/ {id} /帖子:它为用户创建一个帖子。
GET / users / {id} / post:检索用户的所有帖子
HTTP还定义了以下标准状态代码:
- 404:找不到资源
- 200:成功
- 201:创建
- 401:未经授权
- 500:服务器错误
RESTful服务约束
- 必须有服务生产者和服务使用者。
- 该服务是无状态的。
- 服务结果必须是可缓存的。
- 该接口是统一的并且公开资源。
- 服务应采用分层架构。
RESTful Web服务的优势
- RESTful Web服务与平台无关。
- 它可以用任何编程语言编写, 并且可以在任何平台上执行。
- 它提供了不同的数据格式, 如JSON, 文本, HTML和XML。
- 与SOAP相比, 它速度很快, 因为没有像SOAP这样的严格规范。
- 这些是可重用的。
- 这些是语言无关的。
SOAP Web服务
REST定义了一种架构方法, 而SOAP对XML的格式提出了限制。 XML在服务提供者和服务使用者之间传输数据。请记住, SOAP和REST不具有可比性。
SOAP:简单对象访问协议的SOAP缩写。它定义了标准的XML格式。它还定义了构建Web服务的方式。我们使用Web服务定义语言(WSDL)定义请求XML和响应XML的格式。
例如, 我们已请求从Facebook应用程序访问Todo应用程序。 Facebook应用程序将XML请求发送到Todo应用程序。 Todo应用程序处理该请求并生成XML响应, 然后将其发送回Facebook应用程序。
如果使用的是SOAP Web服务, 则必须使用SOAP的结构。
在上图中, SOAP信封包含一个SOAP-Header和SOAP-Body。它包含标识请求所需的元信息, 例如, 身份验证, 授权, 签名等。SOAP-Header是可选的。 SOAP正文包含请求或响应的真实XML内容。如果发生错误, 响应服务器将以SOAP-Fault进行响应。
让我们了解SOAP XML请求和响应结构。
XML请求
<Envelop xmlns=?http://schemas.xmlsoap.org/soap/envelop/?>
<Body>
<getCourseDetailRequest xmlns=?http://udemy.com/course?>
<id>course1</id>
<getCourseDetailRequest>
</Body>
</Envelop>
XML回应
<SOAP-ENV:Envelope xmlns:SOAP-ENV=?http://schemas.xmlsoap.org/soap/envelope/?>
<SOAP-ENV:Header /> <!?empty header-->
<SOAP-ENV:Body> <!?body begin-->
<ns2:getCourseDetailsResponse xmlns:ns2=?http://in28mi> <!--content of the response-->
<ns2:course>
<ns2:id>Course1</ns2:id>
<ns2:name>Spring<ns2:name>
<ns2:description>10 Steps</ns1:description>
</ns2:course>
</ns2:getCourseDetailResponse>
</SOAP-ENV:Body> <!?body end-->
</SOAP-ENV:Envelope>
要记住的要点
- SOAP定义了请求和响应的格式。
- SOAP对传输没有任何限制。我们可以使用HTTP或MQ进行通信。
- 在SOAP中, 服务定义通常使用Web服务定义语言(WSDL)完成。 WSDL定义了端点, 所有操作, 请求结构和响应结构。
端点是公开HTML或ASP页面的连接点。它提供了解决Web Service端点所需的信息。这些操作是允许访问的服务。请求结构定义了请求的结构, 响应结构定义了响应的结构。
评论前必须登录!
注册