RESTful风格

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表示

你可能感兴趣的:(Java开发,RestFul)