API中心 API Hub-可维护性:API请求HTTP动词使用标准化且满足幂等性

时间:2025-02-12 14:54:50

API请求HTTP动词使用标准化且满足幂等性

本条规则是Should类型的扩展规则,可提升API的可维护性。

HTTP方法的需要符合幂等性的约束,幂等性的约束是指一次和多次请求某一个资源应该具有同样的副作用,单个资源操作,资源的标准CRUD操作对应的HTTP动词如表1所示。

表1 HTTP动词

方法

描述

幂等性

POST

适用于新建资源场景,以及CRUD无法表达的操作场景(Non-CRUD)。

GET

用于获取资源的场景,必须具备安全性。

PUT

如果操作的URL为一个新资源,则创建该资源。如果URL为一个已存在的资源,则替换该资源,传入的消息体需包含被替换资源的完整信息。如果传递的信息不完整,在服务实现端需提供对应信息的默认值。

DELETE

用于删除资源的场景。

HEAD

返回资源的元信息比如:ETag和Last-Modified之类的信息。

PATCH

用于部分更新资源的场景,如果使用PUT操作所需输入的整体资源信息内容大小与PATCH操作无太大差异,优先使用PUT操作,不推荐使用PATCH操作。

OPTIONS

获取当前资源支持哪些方法的信息。

例如:使用正确的HTTP动词。

  • “查询虚拟机列表”:GET /servers
  • “创建VPC网络”:POST /vpc
  • “删除虚拟机标签”:DELETE /server/tag
  • “创建/更新数据库实例元数据”:PUT /instance/metadata
support.huaweicloud.com/productdesc-apihub/apihub_01_0026.html