最通俗的语言详细讲解java RESTful API !就像喝水一样简单!
注解英文含义中文意思操作生活例子特点Get获取查(Read)看菜单安全、幂等Post(邮寄)提交增(Create)下单不安全不幂等Put(放置)放置/替换改(Update)修改订单(整个替换)不安全、幂等Delete删除删(Delete)取消订单不安全、幂等这四种操作,正好对应了数据库最基本的增(Create)、删(Delete)、改(Update)、查(Read)操作,合称CRUD。这些注解都是
想象一下,你开了一家餐馆,这家餐馆就是你开发的后端程序。而顾客(比如手机APP、网页)就是前端。
那么,@Post, @Get, @Delete, @Put 这些注解,就是顾客对你这个“餐馆”提出的四种不同类型的请求。它们合起来有一个学名,叫 RESTful API 的设计风格。
1. @GetMapping - “老板,我要看菜单!” (查询)
-
它干啥的:获取数据。只从服务器拿信息,不会对数据做任何修改、删除操作。
-
生活例子:顾客进店,说:“老板,把菜单给我看看。” 这个操作只是“看”,不会改变餐馆的任何东西。
-

-
在Java代码里怎么写:
@RestController public class RestaurantController { // 当有人请求 "/menu" 这个地址时,就会调用这个方法 @GetMapping("/menu") public String getMenu() { return "这里是我们的菜单:鱼香肉丝、宫保鸡丁..."; } } -
特点:安全、幂等。你查100次菜单,菜单还是那个菜单,不会多一道菜也不会少一道菜。
2. @PostMapping - “老板,我点好菜了,下单!” (新增)
-
它干啥的:新建或提交数据。通常用于创建一个新的资源。
-
生活例子:顾客在点菜单上勾选了“鱼香肉丝”和“米饭”,然后举手说:“老板,下单!” 这时,后厨就会新增一个订单。
-

-
在Java代码里怎么写:
@PostMapping("/order") public String createOrder(@RequestBody Order order) { // @RequestBody 用来接收前端传过来的数据 // 这里会把接收到的 order 对象(比如包含了菜品ID)保存到数据库 return "订单创建成功!订单号:12345"; } -
特点:不安全、不幂等。你每下一次单,后厨就多一个订单。你提交10次,就会创建10个订单。
3. @PutMapping - “老板,我这个订单里的米饭换成馒头!” (更新/替换)
-
它干啥的:更新已有数据的全部内容。可以理解为“替换”。
-
生活例子:顾客发现订单里的“米饭”点错了,想换成“馒头”。他对服务员说:“把我这个订单里的内容整个换掉,别的菜不变,就是把米饭换成馒头。” 服务员会拿一张新的点菜单,把修改后的完整内容写上去,替换掉旧的。
-

-
在Java代码里怎么写:
@PutMapping("/order/{id}") // {id} 是订单号,告诉服务器要更新哪条数据 public String updateOrder(@PathVariable String id, @RequestBody Order newOrder) { // 根据 id 找到旧订单,然后用 newOrder 这个新对象完全替换它 return "订单更新成功!"; } -
特点:不安全,但幂等。你连续多次告诉老板“把米饭换成馒头”,最终结果和只说一次是一样的,订单里依然是馒头,不会变成10个馒头。
4. @DeleteMapping - “老板,我这个订单不要了,取消!” (删除)
-
它干啥的:删除数据。
-
生活例子:顾客等得太久,不想吃了,说:“老板,把我刚下的那个订单取消掉!”
-

-
在Java代码里怎么写:
@DeleteMapping("/order/{id}") public String cancelOrder(@PathVariable String id) { // 根据 id 找到那个订单,然后从数据库里删除它 return "订单已取消!"; } -
特点:不安全,但幂等。你删一次,订单没了。你再删100次,结果还是“订单不存在”,和删一次的效果一样。
总结与类比(非常重要!)
| 注解 | 英文含义 | 中文意思 | 操作 | 生活例子 | 特点 |
|---|---|---|---|---|---|
@GetMapping |
Get | 获取 | 查 (Read) | 看菜单 | 安全、幂等 |
@PostMapping |
Post (邮寄) | 提交 | 增 (Create) | 下单 | 不安全、不幂等 |
@PutMapping |
Put (放置) | 放置/替换 | 改 (Update) | 修改订单(整个替换) | 不安全、幂等 |
@DeleteMapping |
Delete | 删除 | 删 (Delete) | 取消订单 | 不安全、幂等 |
这四种操作,正好对应了数据库最基本的 增(Create)、删(Delete)、改(Update)、查(Read) 操作,合称 CRUD。
补充一个小知识:@RequestMapping
你可能会在老的代码里看到一个更通用的注解 @RequestMapping。它可以代替上面所有注解,但需要你手动指定方法类型。
// 这四种写法是等价的
@RequestMapping(value = "/menu", method = RequestMethod.GET) // 老写法,比较啰嗦
@GetMapping("/menu") // 新写法,更简洁,推荐!
最后记住一个核心:
这些注解都是贴在Java方法上面的,它们的作用就是告诉Spring框架:“我这个方法,是专门用来处理哪种类型的HTTP请求的”。当有对应的请求过来时,Spring就会自动调用你写的方法。
现在,是不是感觉清楚多了?就像在管理一家餐馆的订单一样简单!
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)