web-services - 创建 REST 子资源来获取列表的最后一个或第一个元素是不好的做法吗?

标签 web-services rest

假设我已经构建了一个 REST 服务来做笔记,看起来像这样:

GET    /notes/     // gives me all notes
GET    /notes/{id} // gives the note with the identified by {id}
POST   /notes/     // creates note
PUT    /notes/{id} // updates note identified by {id}
DELETE /notes/{id} // delete note

现在我想创建允许我获取/更新/删除第一个或最后一个笔记的子资源。

GET    /notes/first // get first note added
PUT    /notes/last  // updates last note added
DELETE /notes/first // delete first note

这是否违背了 REST 的原则?

提前谢谢你:)

编辑:

PS:在这个例子中,我希望 ID 总是一个数字

最佳答案

在我看来,这是完全合法且可取的。我特别喜欢 DELETE/notes/first 的语义,但也考虑了 POST/notes/first - 在第一个笔记之前放一个新笔记 .

在您的情况下,firstlast 是某种特殊的魔术标识符或占位符。另一方面,有哪些替代方案?

关于web-services - 创建 REST 子资源来获取列表的最后一个或第一个元素是不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9380833/

相关文章:

java - 如何使用 restful webservices 从文件中读取所有值并生成相关响应

PHP ONE 脚本处理所有请求

rest - 使用 Jersey 和 tomcat 的 JAXRS 服务中的 404 错误

javascript - 通过 Javascript 调用 Sabre Dev Studio API

web-services - 如何将 Axis 生成的 soap 服务部署到嵌入式 Tomcat 实例

string - Delphi Pos 总是返回 0

java - 在 spring 中调用 jackson 之前获取 http post 请求正文

c# - ServiceStack:如何在服务启动时更改API模型中的成员属性?

java - 如何在 RESTful Web 服务中使用 Jersey 框架抛出 HTTP 204 状态代码?

java - 为具有不同参数的同一 URL 模式创建两个方法(带参数和不带参数)