1.resultful风格
1.1定义:
resultful是一种应用程序的设计风格和开发方式,基于HTTP,可使用XML格式或者JSON格式定义。而由于JSON可以直接被JavaScript读取,所以用JSOSN格式的resultful API更简单,可读性更强,更好用。
1.2 http的请求方式有:
-
GET:从服务器获取一项或者多项数据(查--select)
-
POST:在服务器新建一个资源(增-create)
-
PUT:在服务器更新所有资源(改--update)
-
PATCH:更新部分属性(改--update)
-
DELETE:从服务器删除资源(删--delete)
2.请求的传参方式
2.1GET请求:
(1)适合向服务器发送数据量较小的请求;比如,查询操作;
(2)请求参数放在url中,用问号?分割参数,有多个参数时,用&连接;
(3)params里的参数会被放到url中,所以get请求时的参数添加在params里。
【方式一】
//不传递参数
export function userList(){
return request({
url:'/sys/sysUser',
method:'GET'
})
}
【方式二】 带一个参数,参数拼接在url后边
export function userList(id){
return request({
url:`/sys/userList/${id}`,
//或者这种 url: '/sys/userList/'+ id
method: 'GET'
})
}
【方式三】带对象形式参数,参数添加在params里
export function userList(query){
return request({
url:'/sys/userList',
method:'GET',
params: query
})
}
2.2post请求
(1)适合向服务器发送数据量较大的请求,比如新增(添加)、上传文件等等
(2)参数不会放在url中
(3)body的参数不会放在url,所以post请求时的参数添加在body里
//post请求:参数放在body中
export function addUser(data){
return request({
url:'/sys/sysUser',
method: 'POST',
data: data
})
}
2.3 PUT 请求
//put请求:参数放在body中
export function updateUser(data){
return request({
url:'/sys/sysUser',
method: 'PUT',
data: data
})
}
2.5 DELETE 请求
【方式一】
//删除单挑数据时,参数id拼接在url后边
export function delUserById(id){
return request({
url:`/sys/sysUser/${id}`,
method:'DELETE',
})
}
【方式二】
//当后端使用@RequestParam时:
//删除多条数据的时候,参数idList放在params里边,且前端在传参之前要注意转换一下:
// let ids = this.sels.map((item) => item.id)
// let params = new URLSearchParams()
// params.append('idList', ids)
export function delUser(idList){
return request({
url:''/sys/sysUser',
method:'DELETE',
params:idList
})
}
【方式三】
//当后端使用@RequestBody时(如:@RequestBody List<String> idList):
//@RequestBody主要用来接收前端传递给后端的json字符串数据(请求体中的数据)
//参数idList放在data里边,前端无需转换,直接传数组就好:
export function delUser(idList){
return request({
url:''/sys/sysUser',
method:'DELETE',
data:idList
})
}
3.params和body的区别
3.1 params :
(1)params 设置的参数,请求时,url中问号?后的参数会携带到请求的接口链接上
(2)前端通过params传递-----后端:@RequestParam,接收的是key-value里面的参数。
3.2body
(1)body里设置的参数,是接口真正请求时发送的参数
(2)前端通过body传递-----后端:@RequestBody
(3)这里需要注意设置一下请求头的格式:header:Content-Type=application/json