RESTful
REST即表述性状态传递(英文:Representational State Transfer,简称REST)
是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格
它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性
使用RESTful设计风格可以写出符合标准的http应用程序
请求方式和URI
在我们之前的学习中,前端项目对后端发起的请求URI中直接包含了对请求的动作
例如:user/findById,无论是get还是post的方式,我们将想要做的动作(find)暴露在URI中了
而http作者设计的本质不是这样,他想通过不同的请求方式来区分对后端资源的操作,而不是通过URI区分
http提供了四个请求方式:
- get:查询
- post:保存(新增)
- delete:删除
- put:更新
总结规则
使用GET或DELETE请求方式时,如果参数为单一标识(id),则使用路径传递参数
如果参数不为单一标识时,则使用param参数
使用POST或PUT请求方式时,直接使用JSON请求体传递参数
项目实战
| 功能 |
接口和请求方式 |
请求参数 |
返回值 |
| 分页查询 |
GET /user |
page=1&size=10 |
{响应数据} |
| 用户添加 |
POST /user |
{ user 数据 } |
{响应数据} |
| 用户详情 |
GET /user/1 |
路径参数 |
{响应数据} |
| 用户更新 |
PUT /user |
{ user 更新数据} |
{响应数据} |
| 用户删除 |
DELETE /user/1 |
路径参数 |
{响应数据} |
| 条件模糊 |
GET /user/search |
page=1&size=10&keywork=关键字 |
{响应数据} |
pojo
1 2 3 4 5 6
| @Data public class User { private int id; private String name; private int age; }
|
controller
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
| package com.xiaobai.controller;
import com.xiaobai.pojo.User; import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController @RequestMapping("user") public class UserController {
@GetMapping public List<User> page(@RequestParam(required = false,defaultValue = "1") int page, @RequestParam(required = false,defaultValue = "10")int size){ return null; }
@PostMapping public User save(@RequestBody User user){ return null; }
@GetMapping("{id}") public User detail(@PathVariable Integer id){ return null; }
@PutMapping public User update(@RequestBody User user){ return null; }
@DeleteMapping("{id}") public void delete(@PathVariable Integer id){ }
@GetMapping("search") public List<User> search(@RequestParam String keyword, @RequestParam(required = false,defaultValue = "1") int page, @RequestParam(required = false,defaultValue = "10")int size){ return null; } }
|