RESTFul风格的URL
作者:互联网
在SpringMVC中有个注解为@PathVariable,该注解的作用是,获取RestFul风格的url上的参数
RESTFul 风格 URL
REST(英文: Representational State Transfer,简称 REST)描述了一个架构样式的网络系统,比如 web 应用程序。它首次出现在 2000 年 Roy Fielding 的博士论文中,他是 HTTP 规范的主要编写者之一。在目前主流的三种 Web 服务交互方案中, REST 相比于 SOAP(Simple Object Access protocol,简单对象访问协议)以及 XML-RPC 更加简单明了,无论是对 URL 的处理还是对 Payload 的编码, REST 都倾向于用更加简单轻量的方法设计和实现。值得注意的是 REST 并没有一个明确的标准,而更像是一种设计的风格。它本身并没有什么实用性,其核心价值在于如何设计出符合 REST 风格的网络接口。
-
restful 的优点
它结构清晰、符合标准、易于理解、 扩展方便,所以正得到越来越多网站的采用。
-
restful 的特性:
资源(Resources) : 网络上的一个实体,或者说是网络上的一个具体信息。它可以是一段文本、一张图片、一首歌曲、一种服务,总之就是一个具体的存在。可以用一个 URI(统一资源定位符)指向它,每种资源对应一个特定的 URI 。要获取这个资源,访问它的 URI 就可以,因此 URI 即为每一个资源的独一无二的识别符。表现层(Representation) : 把资源具体呈现出来的形式,叫做它的表现层 (Representation)。比如,文本可以用 txt 格式表现,也可以用 HTML 格式、 XML 格式、 JSON 格式表现,甚至可以采用二进制格式。状态转化(State Transfer) : 每 发出一个请求,就代表了客户端和服务器的一次交互过程。HTTP 协议,是一个无状态协议,即所有的状态都保存在服务器端。因此,如果客户端想要操作服务器,必须通过某种手段, 让服务器端发生“ 状态转化” (State Transfer)。而这种转化是建立在表现层之上的,所以就是 “ 表现层状态转化” 。具体说,就是 HTTP 协议里面,四个表示操作方式的动词: GET 、 POST 、 PUT、DELETE。它们分别对应四种基本操作: GET 用来获取资源, POST 用来新建资源, PUT 用来更新资源, DELETE 用来删除资源 .
实例 :
保存
传统:http://localhost:8080/user/save
REST:http://localhost:8080/user POST方式 执行保存
更新
传统:http://localhost:8080/user/update?id=1
REST:http://localhost:8080/user/1 PUT方式 执行更新 1代表id
删除
传统:http://localhost:8080/user/delete?id=1
REST:http://localhost:8080/user/1 DELETE方式 执行删除 1代表id
查询
传统:http://localhost:8080/user/findAll
REST:http://localhost:8080/user GET方式 查所有
传统:http://localhost:8080/user/findById?id=1
REST:http://localhost:8080/user/1 GET方式 根据id查1个
使用实例:
/**
* .../findCheckItem?mealId=1&groupId=3&itemId=10
* 目标: /套餐id/检查组的id/检查项的id ----> .../1/3/10
* @return
*/
@RequestMapping(method = RequestMethod.GET,path = "/{mealId}/{groupId}/{itemId}")
public String findCheckItem(@PathVariable("mealId") int mealId,@PathVariable("groupId") int groupId,@PathVariable("itemId") int itemId){
System.out.println("根据id查询:mealId=" + mealId + ",groupId=" + groupId + ",itemId=" + itemId);
return "success";
}
@RequestMapping(method = RequestMethod.DELETE,path = "/{mealId}/{groupId}/{itemId}")
public String deleteCheckItem(@PathVariable("mealId") int mealId,@PathVariable("groupId") int groupId,@PathVariable("itemId") int itemId){
System.out.println("根据id删除:mealId=" + mealId + ",groupId=" + groupId + ",itemId=" + itemId);
return "success";
}
标签:itemId,mealId,URL,REST,id,风格,RESTFul,groupId,localhost 来源: https://blog.csdn.net/m0_49102380/article/details/122609790