我正在设计一个REST API,并尝试确定哪种方法是返回单个资源的更正确方法:
/resource/{id}
Run Code Online (Sandbox Code Playgroud)
要么
/resource/{name}
Run Code Online (Sandbox Code Playgroud)
该ID是不可变的,因此我认为最好通过它进行选择,但是名称看起来更友好。最佳做法是什么?我看过这两种用法都在“野外使用”之前。
基本上,REST是建立在唯一ID之上的,因此:
GET /resources/{id}/
Run Code Online (Sandbox Code Playgroud)
应该使用。但是,没有什么可以阻止您使name字段成为唯一字段(现在它的行为就像普通的旧ID)并在此唯一ID之上构建REST。
如果这不是您所需要的并且name不能使其唯一,那么另一种选择是通过name以下方式实现过滤:
GET /resources?name=<SOME_NAME>
Run Code Online (Sandbox Code Playgroud)
它也应该是resources(复数),因为它表明引擎盖下有一个收藏夹。
| 归档时间: |
|
| 查看次数: |
2729 次 |
| 最近记录: |