假设我已经构建了一个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总是一个数字
答案 0 :(得分:2)
以我的拙见,这是完全合法和可取的。我特别喜欢DELETE /notes/first
的语义,但也考虑POST /notes/first
- 在第一个之前添加一个新笔记。
在您的情况下,first
和last
是某种特殊的魔术标识符或占位符。另一方面,有哪些替代方案?