http请求方式及传参方式
本文简单介绍一下http的几种请求方式以及集中传参方式的不同。
常见的几种请求方式
HTTP1.0 定义了三种请求方法: GET, POST 和 HEAD 方法。
HTTP1.1 新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。
http常见及常用的请求方式有:GET、POST、OPTIONS、PUT和DELETE。
- GET方法
用于请求数据。使用GET方法的请求应该只是检索数据,并且不应对数据产生其他影响。GET请求是可以缓存的,GET请求有长度限制。
注:因GET请求的不安全性,在处理敏感数据时,绝不可以使用GET请求。 - POST方法
POST方法用于创建或更新资源。POST请求永远不会被缓存,且对数据长度没有限制; - HEAD方法
HEAD方法与GET方法相同,但没有响应体,仅传输状态行和标题部分。 - PUT方法
PUT方法用于将数据发送到服务器以创建或更新资源。 - DELETE方法
DELETE方法用来删除指定的资源 - OPTIONS方法
OPTIONS方法用来描述了目标资源的通信选项,会返回服务器支持预定义URL的HTTP策略
常见的传参方式及实现
这里用springboot 项目、axios及swagger UI的示例。
- 路径变量PathVariable
springboot项目中以@PathVariable注解的变量。
@GetMapping("/pet/{petId}")
public Zoos getPetById(@PathVariable("id") String id) {
// ......
}
前端
export function getPetById(id) {
return request({
url: `/pet/${id}`,
method: 'get'
})
}
对应swagger的path参数。
表现在URL上是:/pet/12
2. query参数
springboot 项目中以@RequestParam参数
@GetMapping("/pet/findByStatus")
public Pet findByStatus(@RequestParam("status") String status) {
// ...
}
前端
export function findByStatus(params) {
return request({
url: '/pet/findByStatus',
method: 'get',
params: params
})
}
对应swagger的query参数
表现在URL上是:/pet/findByStatus?status=abc
3. form-data类型
springboot项目
class Attachment {
private String name;
private MultipartFile file;
}
@PostMapping("/attachment")
public void uploadFile(Attachment attachment) {
// ......
}
前端
// data 是一个FormData对象
export function uploadFile(data) {
return request({
url: 'attachment',
method: 'post',
data: data
})
}
对应swagger的multipart/form-data类型的参数
formdata数据也是放在request body中。
4. @RequestBody