【发布时间】:2013-12-19 23:00:23
【问题描述】:
我经常遇到这样的问题,与Hierarchical RESTful URL design非常相似
假设该服务仅提供用户上传文档。
POST, GET /accounts
PUT, DELETE /accounts/{name} or /accounts/{id}
现在一个文档被附加到一个特定的用户,不管它是不是公开的,这里都不关心。
两种方式是POST /documents vs POST /users/documents
为什么?因为稍后创建文档资源时,该文档处于用户的控制之下。所以我希望有
GET, PUT, DELETE /users/{name}/documents 用于获取、更改和删除用户拥有的一堆文档。
我可以有GET, PUT, DELETE /users/{name}/documents/{name/id}
但是/documents/{users}/.... or /documents/{id} 也可以达到同样的效果。这类似于组织 unix 文件的方式(尽管/users/... 也是组织文件的另一种方式......)你看,还有一种哲学[phy of uri vs url design。
另一个考虑因素是 API 是否对用户可见。如果这只是一个后端 API,只有开发人员可以访问(backend <- frontend server <- frontend ajax),那么网站用户可能会更喜欢/users/{name}/documents/{id/name},而如果 API 是公开的(如 twitter api),一些程序员会不喜欢这个长 url。
人们如何看待这些问题?
【问题讨论】:
标签: web-services api rest restful-url