RESTful风格

mac2026-05-02  21

RESTful风格

RESTful(REpresentational State Transfer)就是一个资源定位及资源操作的风格。不是标准也不是协议,只是一种风格。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。资源通过 URL 进行识别和定位,然后通过行为(即 HTTP 方法)来定义 REST 来完成怎样的功能。

接下来了解几个名词

资源 所谓"资源",就是网络上的一个实体,或者说是网络上的一个具体信息。它可以是一段文本、一张图片、一种服务,就是一个具体的实物。你可以用一个URI(统一资源定位符)指向它,每种资源对应一个特定的URI。要获取这个资源,访问它的URI就可以。 所谓"上网",就是与互联网上一系列的"资源"互动,调用它的URI操作 HTTP请求中有8种方法GET(查)、POST(增)、PUT(改)、DELETE(删)、OPTIONS、HEAD、TRACE、CONNECT,传统的JavaWeb最常用的是GET和POST,而RestFul风格会用到前四种状态转化 访问网站,就表示客户端和服务器有互动的过程。在这个过程中,势必涉及到数据和状态的变化。互联网通信协议HTTP协议,是一个无状态协议。这意味着,所有的状态都保存在服务器端。状态转化允许资源URI具有不同的表现形式,同一个URI,根据不同请求方式,执行的动作不同。REST的无状态设计 把所有的状态都保存在服务器端有一个问题,会造成服务器端的过多压力,影响访问。此时把服务端的状态迁移到客户端保存或者数据库端保存(如把Session存入Redis数据库),从而应用服务器就是无状态的了,会有更好的性能,这就是REST的无状态设计风格。

实例

传统操作方式

http://127.0.0.1/goods/querygoods.action 查询,GET http://127.0.0.1/goods/savegoods.action 新增,POST http://127.0.0.1/goods/updategoods.action?id=1 更新,POST http://127.0.0.1/goods/deletegoods.action?id=1 删除,GET或POST (杂乱无章)

RESTful操作资源

http://127.0.0.1/goods 查询,GET http://127.0.0.1/goods 新增,POST http://127.0.0.1/goods/1 更新,PUT http://127.0.0.1/goods/1 删除,DELETE (简洁明了)

spring boot注解实现
@RequestMapping(value="/", method=RequestMethod.GET) 或 @GetMapping("/")@RequestMapping(value="/", method=RequestMethod.POST) 或@PostMapping("/")@RequestMapping(value="/{id}", method=RequestMethod.PUT) 或 @PutMapping("/{id}")@RequestMapping(value="/{id}", method=RequestMethod.DELETE) 或 @DeleteMapping("/{id}")

注意

资源定位符(URI)应该是名词,不应该有动词同一资源的不同形式用同一URI表示
最新回复(0)