2026-06-04#

Data: 2026-06-04 23:36:57

推特上有人给出了两个这样的接口,然后讨论一下哪种更好:

方案 A :

GET /users GET /users/1 POST /users DELETE /users/1

方案 B :

GET /getUsers GET /getUserById?id=1 POST /createUser DELETE /deleteUser?id=1

原推文: https://x.com/Its_Nova1012/status/2062383146201698789

对于初学者,或者早年间编程的人来讲,可能觉得 B 更熟悉,但是实际上,我们这几年,基本上都已经普及 A 了,这是 RESTful 风格!

哪种更好呢?方案 A 是我们很常用的更清晰的 RESTful 设计 。这种显然在我自己看来,更好。因为现在我们大部分系统都在使用 RESTful 风格。比如 stripe、github 这种我们经常打交道的 API 。可扩展且标准化。

方案 B,其实是经典的 RPC 风格的 API,端点以操作命名。

方案 B 的确定是,它看起来不好看,而且会随着 API 的不断成长,变得越来越臃肿,很难维护。而且吧,读起来就像有人给函数命名后忘了停下来。

方案 B 会导致很大的技术债务,因为动作已经在前面的 HTTP 协议里的 GET DELETE 等注明了,没有必要再写个 getUserById deleteUser 这种函数了。

当然,其实这个对比,还应该再改进一下哈!

就是得加上版本号。

方案 A (加上版本号):

GET /v1/users GET /v1/users/1 POST /v1/users DELETE /v1/users/1

这样看起来舒服多了哈哈。

- end -#

© 2025 –   海牧羽工厂 HMY Factory