Restful只是一种发送http请求的风格,对请求的方式赋予其对应的语义,本质还是发送http请求
一般使用Restful风格发送请求的方式都是按照这一种规范来:
- GET请求:用于获取
- POST请求:用于添加
- PUT请求:用于更新
- DELETE请求:用于删除
注:这只是大家约定俗成的语法规则
使用SpringMVC进行Restful风格请求的接收
/**
* 写一个Controller类
*/
@RestController
@RequestMapping("/meeting")
public class MeetingController {
@Autowired
private MeetingService meetingService;
/**
* /{id}: 它是请求的最后一个 / 后面的参数,{id}要和@PathVariable注解的值进行对应,否则无法获取到
* 例:http://localhost:8080/meeting/1
* 首先它的请求方式是GET才能进行匹配,id获取到就是1
* 在Restful风格中GET请求表示获取数据所以这一条请求就表示:获取id为1的Meeting对象
* @param id
* @return
*/
@GetMapper("/{id}")
public R getMeeting(@PathVariable("id") Integer id) {
return new R(200, "查询成功", meetingService.getMeetingById(id));
}
/**
* 表示新增,@RequestBody表示对json类型的请求参数进项封装
* 这里就是将请求的参数封装为一个Meeting对象
* @param meeting
* @return
*/
@PostMapping
public R save(@RequestBody Meeting meeting) {
if (meetingService.save(meeting) == 1) {
return new R(200, "添加成功");
} else {
return new R(202, "添加失败");
}
}
/**
* 表示更新
* @param meeting
* @return
*/
@PostMapping
public R update(@RequestBody Meeting meeting) {
if (meetingService.save(meeting) == 1) {
return new R(200, "添加成功");
} else {
return new R(202, "添加失败");
}
}
/**
* 表示删除对应id的数据
* @param id
* @return
*/
@DeleteMapping("/{id}")
public R del(@PathVariable("id") Integer id) {
if (meetingService.deleteMeetingById(id) == 0) {
return new R(201, "删除失败");
} else {
return new R(200, "删除成功");
}
}
}
注:在这个实例中新增和更新的url是一样的,获取和删除的url也是一样的,但是应为它们在进项发送时的方式不一样,从而会进入到对应请求方式的方法中