欢迎访问宙启技术站
智能推送

spring中REST和RESTful的区别以及基本实现

发布时间:2023-05-14 03:53:52

REST(Representational State Transfer)和RESTful都是一种基于HTTP协议的Web服务架构风格,是现代Web应用的重要组成部分。它们都是用来描述和设计分布式系统的架构风格,REST本身不是一种标准或者协议,而RESTful是一种实现REST架构风格的Web服务的方式。虽然它们有一定的相似性,但是它们还是有着一些基本的区别。

区别:

1.定义: REST本身不是一种标准或者协议,本质上是一种架构风格;而RESTful是实现REST风格的Web服务。

2.表达方式: REST通过GET、POST、PUT、DELETE和OPTIONS等几个HTTP方法来表示资源状态的转移,而RESTful则使用HTTP协议中的各种方法,如GET、POST、PUT、DELETE等方法,但是RESTful也遵循REST的约束条件。

3.语义: REST更关注资源本身的定义以及对资源进行的操作,所以它的URL通常以名词作为结尾;而RESTful则更关注对资源的操作,所以它的URL通常以动词作为结尾,例如:/create-user、/delete-user等。

4.灵活性: REST更灵活,可以采用不同的协议来实现,比如SOAP、XML-RPC等,而RESTful则是基于HTTP协议的REST风格。

实现:

1.资源

在RESTful 架构中,“资源”是一种抽象的概念,可以代表任何东西。在设计RESTful时,首先要确定资源的类型,资源可以是一个对象、一组对象或某些非物理的东西,如Java对象、数据库表、文件或者是网络服务等。

2.资源标识

RESTful中每一个资源都需要一个 的标识符(URI),用来区分资源和其他的资源,URI可以是简单的术语,或是复杂的路径。URI由两部分组成,即主机地址和资源标识符。例如:http://www.example.com/customers/1。

3.资源的操作

资源与状态的转换可以使用 HTTP 协议本身提供的几个动词(GET、POST、PUT、DELETE)来完成。HTTP动词定义了对资源的操作类型。常用的操作包括:

GET:获取资源信息。

POST:新增资源。

PUT:更新资源。

DELETE:删除资源。

4.结构化数据格式

RESTful服务返回的数据一般使用结构化的数据格式,最常见的数据格式包括XML和JSON。通过使用这种结构化数据格式,RESTful 服务可以有效地进行数据交换。

5.状态码

HTTP状态码代表了 RESTful 操作的结果状态。在 RESTful 架构中,响应通常包括状态码、HTTP头和响应正文等信息。状态码分为 5 类:信息状态码、成功状态码、重定向状态码、客户端错误状态码、服务端错误状态码。

总之,RESTful 并不是一种新的技术,而是一种基于 HTTP 的分布式架构风格。它将资源、URI、动词、状态码以及数据格式等概念和技术有机地结合起来,为现代分布式系统的开发提供了很好的思路和方向。