知识卡片

通过URL寻址名词而非调用动作是REST的核心区分

普通读书笔记卡 · 1807.a

内容

形如”/getemployees?type=salaried”的地址表面像REST,实际把名词和动词混进URL,本质是”用URL实现RPC”,不是REST。真正REST做法是把URL固定为业务概念本身的名字(如”/employee/salaried”),对同一地址用不同HTTP动词表达不同操作意图。若想调用某个行为直接用SOAP更合适;只有把业务概念当可寻址资源设计,才是在利用REST优势。

参考来源

- 位置:《架构之美》第5章《面向资源的架构:在Web中》5.4节《面向资源的架构》(源文件:程序之美系列套装(6册)团队之美、项目管理之美、架构之美、数据之美、测试之美、安全之美/_epub-src/OEBPS/Text/part0141.xhtml) - 结论依据:原文明确"这不是一个好的REST服务名称……因为它混合了名词和动词。这就是我常说的'通过URL来寻址行为'或'通过URL来实现RPC'……REST是关于信息管理的,而不一定是通过URL来调用任意的行为"。 - 原始内容:这不是一个好的REST服务名称(大多数"拉斯塔法里分子"会说这根本不是REST!),因为它混合了名词和动词……REST是关于信息管理的,而不一定是通过URL来调用任意的行为。