API设计应该了解的HTTP方法和特性

简介: 在 REST API 设计理念里面对于资源的具体操作使用 HTTP 动词(方法),昨天在《API端点/资源命名最佳实践》介绍了端点的命名,今天来介绍在 REST API 设计中经常用到的HTTP方法,这些方法类似于字母表很常用。开发人员通常只使用 GET、PUT 、DELETE 或 POST,HTTP 官方介绍了 39 个 HTTP 请求方法及每个方法适合的场景。在本文中,介绍在REST API设计中常用的HTTP请求方法和特性。

在 REST API 设计理念里面对于资源的具体操作使用 HTTP 动词(方法),昨天在《API端点/资源命名最佳实践》介绍了端点的命名,今天来介绍在 REST API 设计中经常用到的HTTP方法,这些方法类似于字母表很常用。开发人员通常只使用 GETPUTDELETEPOST,HTTP 官方介绍了 39 个 HTTP 请求方法及每个方法适合的场景。在本文中,介绍在REST API设计中常用的HTTP请求方法和特性。

1.资源获取

最熟悉的就是 GETHEAD,被用作以特定的方式获取资源的场合。这是最容易理解的方法,也是最常用的。

GET

GET方法用于请求获取特定的资源,GET 请求应该只用于获取数据。

HEAD

HEAD 反映了另一个方法的一些功能,同时解锁了更多的可能性。HEAD 从给定资源请求 GET 响应,但是没有响应体,这看上去比较简单,但它允许更大的灵活性来为其他API进行扩展,例如可以将资源的 HEAD 传递给另一个请求以模拟不同的请求环境,这对测试和故障排除非常有帮助。

2.资源修改

有很多方法可以从根本上改变资源,这些方法可以包括放置资源、替换目标资源,甚至更新有关资源的属性。

PUT

PUT 在某种程度上与 GET 截然相反。GET 请求特定资源,PUT 将该资源放置在远程目录中。应该注意的是,使用 PUT 时,当资源不存在的时候就就是创建,已存在就是覆盖,

PATCH

PATCH 被用来部分修改目标资源,换句话说,当 PUT 将资源放置在目标服务中时,PATCH 是修改该资源,而不是替换它,这对于更新文件或者版本很实用。

3.资源删除

DELETE 很直观的就知道是删除目标资源。删除方法的通常的响应是简单地回复 OK 状态 —— 资源被删除或者没有。

4.资源创建

POST 用于创建目标资源,允许通过API提交一个属性或者实体。

5.资源环境

并不是对资源的每次更改都必须是对资源内容的更改,有两个方法与资源环境的交互比资源本身更多。

TRACE

TRACE 是执行消息回送测试的方法,这个测试允许查看到目标资源的路径,确定潜在的故障点。这是一个非常强大的工具,虽然它可能很简单,因为它只是反映了资源的基本路径。

CONNECT

CONNECT 是一个创建与资源的通信而不是直接与所述资源交互的方法,CONNECT 用于建立与目标资源的服务器连接的通道。通常的作用就是把服务器作为跳板(将服务器作为代理),让服务器代替用户去访问其它网页,之后把数据原原本本的返回给用户。

幂等性

幂等性(Idempotence)是HTTP方法的重要特性之一,从定义上看,HTTP 方法的幂等性是指一次和多次请求某一个资源应该具有同样的响应结果。根据幂等性的定义只有GETHEADPUTDELETE是具有幂等性,POSTPATCH不具有幂等性。

安全性

安全性是 HTTP 方法的另一特性,和幂等性不一样,安全方法根本不会改变服务器的状态,根据这个定义只有GETHEAD 是安全的。

下面是上述方法的安全性和幂等性情况:

方法名称 安全性 幂等性
GET
HEAD
POST
PATCH
PUT
DELETE

总结

深入理解这些方法、它们的幂等性和它们的安全性是 API 设计的基础。


相关文章
|
1月前
|
缓存 应用服务中间件 网络安全
Nginx中配置HTTP2协议的方法
Nginx中配置HTTP2协议的方法
79 7
|
2月前
|
测试技术 API 项目管理
API测试方法
【10月更文挑战第18天】API测试方法
57 1
|
9天前
|
安全 网络安全 数据安全/隐私保护
内网/局域网IP地址申请https证书方法
为内网/局域网IP地址申请HTTPS证书,可增强数据传输的安全性。首先确定固定的内网IP地址,选择可信的证书颁发机构,注册并申请免费或付费SSL证书,提交相关信息,支付费用(如有)。证书申请成功后,下载并配置于服务器,确保通过浏览器访问时显示为安全连接。注意定期更新证书,确保持续的安全保障。此过程适用于局域网内部通信加密,提升内网服务的安全水平。
|
19天前
|
JSON 安全 API
Python调用API接口的方法
Python调用API接口的方法
84 5
|
19天前
|
存储 Java 数据挖掘
Java 8 新特性之 Stream API:函数式编程风格的数据处理范式
Java 8 引入的 Stream API 提供了一种新的数据处理方式,支持函数式编程风格,能够高效、简洁地处理集合数据,实现过滤、映射、聚合等操作。
35 6
|
1月前
|
缓存 前端开发 API
|
28天前
|
安全 应用服务中间件 网络安全
免费ip地址https证书申请方法
IP SSL证书用于保障IP地址与浏览器间的数据传输安全,多数需付费购买。JoySSL现提供免费试用版,申请流程包括:访问官网、注册账号(需输入特定注册码230922)、选择证书类型、填写申请信息、验证IP控制权、等待审核、下载及部署证书。确保IP地址独立可控,信息准确,及时续期。
|
1月前
|
开发者
HTTP 协议请求方法的发展历程
【10月更文挑战第21天】
|
1月前
|
安全
HTTP 协议的请求方法
【10月更文挑战第21天】
|
1月前
|
缓存 安全 前端开发
HTTP 协议的请求方法在实际应用中有哪些注意事项?
【10月更文挑战第29天】HTTP协议的请求方法在实际应用中需要根据具体的业务场景和需求,合理选择和使用,并注意各种方法的特点和限制,以确保网络通信的安全、高效和数据的一致性。
下一篇
DataWorks