一、基础知识
1.HTTP的五种请求方法:GET, POST ,HEAD,OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。
GET请求:请求指定的页面信息,并返回实体主体。(通常用来接收数据)。
POST请求:向指定资源提交数据进行处理请求,数据被包含在请求体中。POST请求可能会导致新的资源的建立、已有资源的修改。(通常用来发送数据)。
HEAD请求:类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头。
PUT请求:从客户端向服务器传送的数据取代指定的文档的内容。
DELETE请求:请求服务器删除指定的页面。
CONNECT请求:能够将连接改为管道方式的代理服务器。
OPTIONS请求:允许客户端查看服务器的性能。
TRACE请求:显示服务器收到的请求,主要用于测试或诊断。
2.接口调用传参方式:key-value参数形式,Json串传参形式。
key-value参数:把参数拼接在url的后面由?相连,多个参数之间用&相连。
Json串传参:需要在请求的body写中,入Json格式参数。
二、接口文档
1.GET请求接口文档
功能说明:用户注册
请求URL: http://demo/web-member/auth/memberRegisteredByMobile
请求方式:GET
参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
mobile | 是 | string | 手机号 |
sign | 是 | int | (0:注册发送,1,忘记密码发送) |
返回示例:
无
返回参数说明:
数名 | 类型 | 说明 |
---|---|---|
status | string | 注册发送是否成功 |
message | string | 注册发送详细信息 |
2.POST请求接口文档
功能说明:用户登录
请求URL: http://demo/web-member/auth/memberLogin
请求方式:POST
参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
username | 是 | string | 用户名(邮箱或电话号) |
password | 是 | string | 密码 |
deviceType | 是 | string | “ios”“android” |
返回示例:
无
返回参数说明:
参数名 | 类型 | 说明 |
---|---|---|
status | string | 操作状态 |
result | string | 返回token |
三、Postman接口操作
1.GET请求操作:
2.GET请求操作结果:
3.POST请求操作:
4.POST请求操作结果:
5.PUT请求操作:
6.PUT请求操作结果:
附接口测试代码:
@RestController
@RequestMapping("/api/resource")
@Slf4j
public class ApiRequestController {
@PostMapping("/postTest")
public JsonResult<String> createResource(@RequestBody RequestFromDTO postData) {
// 处理请求体数据,创建资源的业务逻辑
// ...
log.info("测试post请求参数为:{} ", postData.toString());
// 返回响应
JsonResult<String> resourceCreatedSuccessfully = JsonResult.success(ResultMsgConstant.DEFAULT_SUCCESS_STATUS,
"Resource created successfully", postData.toString());
return resourceCreatedSuccessfully;
}
@PutMapping("/putTest/{id}")
public JsonResult<String> updateResource(@PathVariable("id") Long id, @RequestBody RequestFromDTO putData) {
// 根据id和请求体数据,进行资源更新的业务逻辑
// ...
// 返回响应
JsonResult<String> resourceCreatedSuccessfully = JsonResult.success(ResultMsgConstant.DEFAULT_SUCCESS_STATUS,
"id为"+ String.valueOf(id) + "的数据 Resource updated successfully", putData.toString());
return resourceCreatedSuccessfully;
}
}
另:
补充:post请求接口@RequestBody和@RequestParam参数的不同调用方式。
接口参数@RequestBody
调用方式:
接口参数@RequestParam调用方式:
二、补充
POST和PUT请求方式区别
1、POST请求和PUT请求是HTTP协议中的两种主要方法,它们有以下区别:
-
目的:POST请求用于向服务器提交新的数据,通常用于创建资源。PUT请求用于更新服务器上的现有资源。
-
幂等性:POST请求不是幂等的,多次重复发送相同的POST请求会创建多个资源副本。PUT请求是幂等的,多次重复发送相同的PUT请求不会产生额外的影响。
-
请求语义:POST请求的语义是向资源集合添加一个新的成员;PUT请求的语义是替换或创建指定URL下的资源。
-
数据处理:POST请求通常将数据作为请求体中的实体进行传输,用于提交表单数据或上传文件等。PUT请求也可以接收数据作为请求体,但通常更常见的是将数据放在URL的路径中,对指定资源进行更新。
总结来说,POST请求用于创建资源,而PUT请求用于更新或替换资源。POST是非幂等的,而PUT是幂等的。在使用时,需要根据具体的需求和语义选择适当的请求方法。
2、POST和PUT请求方式优缺点
POST请求的优点:
- 可以用于创建新资源,适用于需要向服务器提交数据并在服务器端进行处理的场景。
- 可以向服务器发送大量数据,因为数据通常作为请求体传输,没有长度限制。
- 不依赖于URL路径来确定操作的目标资源。
POST请求的缺点:
- 非幂等性,多次重复发送相同的POST请求会创建多个资源副本。
- 对服务器资源的修改可能不透明,无法直接指定要修改的具体字段或属性。
PUT请求的优点:
- 幂等性,多次重复发送相同的PUT请求不会产生额外的影响。
- 可以对指定的URL下的资源进行替换或更新操作,具有明确的语义和目的。
- 更直观地指定要修改的具体字段或属性。
PUT请求的缺点:
- 不支持像POST请求那样将大量数据放在请求体中传输,通常更适合小型数据更新。
- 某些服务器或代理可能对PUT请求有限制或禁用。
综上所述,POST请求适用于创建资源和处理较大数据量的情况,但非幂等性和可见性差。而PUT请求适用于更新现有资源、具备幂等性和可见性,但不适合传输大量数据。选择请求方法时,应根据具体需求和场景来权衡优缺点。
3、POST和PUT请求方式推荐使用场景
推荐以下场景适合使用POST请求:
-
创建资源:当需要在服务器上创建新的资源时,可以使用POST请求。例如,在一个博客网站上创建新的文章或在社交媒体平台上发布新的帖子。
-
表单提交:当用户填写表单并提交数据时,通常使用POST请求将表单数据发送到服务器进行处理。这包括注册表单、登录表单、评论表单等。
-
文件上传:如果需要将文件上传到服务器,则通常使用POST请求。例如,上传图片、上传视频等。
-
批量操作:如果需要对多个资源进行批量操作,可以使用POST请求将相关信息打包发送到服务器。例如,同时删除多个选定的项目或批量更新资源状态。
推荐以下场景适合使用PUT请求:
-
更新资源:当需要更新或替换现有资源时,可以使用PUT请求。例如,修改已发布的文章、更改用户个人资料等。
-
局部更新:如果只需对资源的一部分进行更新,而不是替换整个资源,可以使用PUT请求。例如,更改文章的标题或内容,而保留其他字段不变。
-
增量更新:如果需要对资源进行增量更新,即在现有值的基础上进行修改,可以使用PUT请求。例如,将某个资源的计数器递增或递减。
总之,POST请求适合用于创建资源、表单提交、文件上传和批量操作等场景,而PUT请求适合用于更新资源、局部更新和增量更新等场景。选择合适的请求方法应根据具体需求和语义来决定。