RESTful风格

本文介绍了RESTful架构的基本概念,包括其核心原则与特征。详细解释了如何使用HTTP动词(GET、POST、PUT、DELETE)来操作资源,并澄清了关于URI的一些常见误解。

EST,即Representational State Transfer的缩写。我对这个词组的翻译是"表现层状态转化"。
如果一个架构符合REST原则,就称它为RESTful架构。


RESTful架构特征:
(1)每一个URI代表一种资源;
(2)客户端和服务器之间,传递这种资源的某种表现层;
(3)客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"。

客户端用到的手段,只能是HTTP协议。具体来说,就是HTTP协议里面,四个表示操作方式的动词:GET、POST、PUT、DELETE。它们分别对应四种基本操作:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源。

误区:
1,URI包含动词
把动词改成名词,资源不能是动词,但是可以是一种服务。
2,URI中加入版本号
因为不同的版本,可以理解成同一种资源的不同表现形式,所以应该采用同一个URI。版本号可以在HTTP请求头信息的Accept字段中进行区分。


http://www.ruanyifeng.com/blog/2011/09/restful.html

### Restful 风格基本概念 Restful 是一种资源定位及资源操作的风格,并非标准或协议。基于该风格设计的软件更简洁、有层次,且易于实现缓存等机制。互联网中的所有事物都可抽象为资源,使用 POST、DELETE、PUT、GET 不同方法对资源进行操作,分别对应添加、删除、修改、查询 [^3]。 ### Java 后端使用 Restful 风格的语法 在 Java 后端开发中,常使用 Spring 框架实现 Restful 风格的 API。以下是一些关键语法和示例: #### 1. `@RequestMapping` 注解 `@RequestMapping` 是一个通用的请求映射注解,可用于类和方法上,用于指定请求的 URL 和 HTTP 方法。 ```java import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class RestfulContraller { // 之前的写法 @RequestMapping("/add") public String test(int a, int b, Model model) { int res = a + b; model.addAttribute("msg", "结果为" + res); return "test"; } } ``` #### 2. 更细化的 HTTP 方法注解 为了更清晰地表达请求的 HTTP 方法,Spring 提供了 `@GetMapping`、`@PostMapping`、`@PutMapping`、`@DeleteMapping` 等注解。 ```java import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/api") public class UserController { // 查询全部用户 @GetMapping("/users") public String getAllUsers() { return "获取所有用户"; } // 新增用户 @PostMapping("/users") public String createUser() { return "创建新用户"; } // 根据 ID 修改用户 @PutMapping("/users/{id}") public String updateUser(@PathVariable Long id) { return "更新用户,ID 为: " + id; } // 根据 ID 删除用户 @DeleteMapping("/users/{id}") public String deleteUser(@PathVariable Long id) { return "删除用户,ID 为: " + id; } } ``` #### 3. `@PathVariable` 注解 用于从 URL 中提取变量。 ```java import org.springframework.ui.Model; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; @RestController public class RestFulController { @RequestMapping(value = "/commit/{a}/{b}", method = {RequestMethod.POST}) public String RestFul2(@PathVariable int a, @PathVariable String b, Model model) { String res = a + b; model.addAttribute("msg", "post 结果为:" + res); return "rest"; } } ``` ### 总结 Java 后端使用 Restful 风格主要借助 Spring 框架的注解来实现资源的定位和操作,通过不同的 HTTP 方法和 URL 设计,使 API 更具可读性和可维护性。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值