我经常遇到这样的问题,与此非常相似分层 RESTful URL 设计 https://stackoverflow.com/questions/7833548/hierarchical-restful-url-design?rq=1
假设该服务仅提供用户上传文档。
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。
人们对这些问题有何看法?