HTTP动词 | 对应操作 |
---|---|
POST | 新增信息 |
GET | 获取信息 |
PUT | 更新信息 |
DELETE | 删除信息 |
一、POST-----新增信息
1. 后台接口
@PostMapping(value = "/save")
public String save(@RequestBody(required = true) Emp emp){
System.err.println(emp.toString());
// 将数据信息存库
empService.saveEmp(emp);
return "Object Save to DB!!!";
}
使用@PostMapping注解,则表示必须用POST方式才能请求该接口;
使用@RequestBody注解,则代表请求该接口时的入参,必须是JSON格式的数据;
2. ajax请求
var parms = {"id": "1008","name":"小白"};
$.ajax({
url:'/save',
data: JSON.stringify(parms),
type:'POST',
dataType:'text',// 返回数据类型,因为后台返回的不是json格式的数据,所以如果这里使用json,则前台控制台打印的会是2,而不是1;
contentType:"application/json;charset=UTF-8",
success:function(data) {
console.log(1)
},
error:function(data) {
console.log(2)
}
})
由于后台接口使用了@PostMapping注解,所以ajax中的type属性必须是POST;
由于后台接口使用了@RequestBody注解,所以ajax的data必须是json格式的,所以需要用JSON.stringify()将数据转换为json格式的字符串;
同时需要指定contentType为"application/json;charset=UTF-8",因为默认的是’application/x-www-form-urlencoded;charset=UTF-8’;
二、GET-----获取信息
1. 后台接口
@GetMapping(value = "/restful/{id}/{orderindex}")
public String info(@PathVariable(required = true) String id, @PathVariable(required = true) long orderindex){
BoTaskPlan boTaskPlan = new BoTaskPlan();
boTaskPlan.setId(id);
boTaskPlan.setOrderindex(orderindex);
BoTaskPlan bo = this.service.getOne(boTaskPlan);
return bo.toString();
}
使用@GetMapping注解,则表示必须用GET方式才能请求该接口;
使用@PathVariable注解,则代表请求该接口时的入参在URI上(URI就是URL除了http和域名或IP端口之外的后面那一截);
2. ajax请求
var id = "22311";
var orderindex = "7";
$.ajax({
url:'/restful/' + id + "/" + orderindex,
type:'GET',
dataType:'json',
contentType:"application/json;charset=UTF-8",
success:function(data) {
console.log(1)
},
error:function(data) {
console.log(2)
}
})
由于后台接口使用了@GetMapping注解,所以ajax中的type属性必须是GET;
由于后台使用了@PathVariable注解,所以参数直接放到URL的"/"后,而不是像以前放在?后面;
三、PUT-----更新信息
1. 后台代码
@PutMapping(value = "/restful")
public String update(@RequestBody(required = true) BoTaskPlan bo){ // 使用@PathVariable获取{XXX}中的XXX变量值
// 更新数据
service.updateById(bo);
// 查询数据
bo = service.getOne(bo.getId());
return bo.toString();
}
使用@PutMapping注解,则表示必须用PUT方式才能请求该接口;
由于后台接口使用了@RequestBody注解,所以ajax的data必须是json格式的,所以需要用JSON.stringify()将数据转换为json格式的字符串;
2. ajax请求
var arr = {"createuser":"sa","id":"22311"};
$.ajax({
url:'/restful',
data: JSON.stringify(arr),
type:'PUT',
dataType:'json',
contentType:"application/json;charset=UTF-8",
success:function(data) {
console.log(1)
},
error:function(data) {
console.log(2)
}
})
由于后台接口使用了@PutMapping注解,所以ajax中的type属性必须是PUT;
由于后台使用了@RequestBody,所以ajax的data必须是json字符串
四、DELETE-----删除信息
1. 后台代码
@DeleteMapping(value = "/restful/{id}")
public String delete(@PathVariable(required = true) String id){ // 使用@PathVariable获取{XXX}中的XXX变量值
// 删除信息
service.deleteById(id);
// 查询所有信息
List<BoTaskPlan> list = service.getAll();
return list.toString();
}
使用@DeleteMapping注解,则表示必须用DELETE方式才能请求该接口;
使用@PathVariable注解,则代表请求该接口时的入参在URI上(URI就是URL除了http和域名或IP端口之外的后面那一截);
2. ajax请求
$.ajax({
url:'/restful/22311',
type:'DELETE',
dataType:'json',
contentType:"application/json;charset=UTF-8",
success:function(data) {
console.log(1)
},
error:function(data) {
console.log(2)
}
})
由于后台接口使用了@DeleteMapping注解,所以ajax中的type属性必须是DELETE;
由于后台使用了@PathVariable注解,所以参数直接放到URL的"/"后,而不是像以前放在?后面;