ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

RESTFul风格的URL

2022-01-20 21:01:04  阅读:178  来源: 互联网

标签:itemId mealId URL REST id 风格 RESTFul groupId localhost


在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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有