我已经仔细阅读了有关此问题的问题,但我仍然没有明确的答案。
我有一个应用程序,想构建一个 RESTful API 来公开信息的子集。我有三个资源:
用户有报告,报告有照片。照片不能存在于报告之外,报告不能存在于用户之外。
我根据我的要求设计了以下 URL
用户登录,服务器以 token 响应, token 在所有 API 调用的 header 中发送
GET example.com/api/
获取用户信息
GET example.com/api/users/{username}
获取所有用户报告
GET example.com/api/users/{username}/reports
获取报告的所有照片
GET example.com/api/users/{username}/reports/{report_id}/photos
添加照片
POST example.com/api/users/{username}/reports/{report_id}/photos
删除照片
DELETE example.com/api/users/{username}/reports/{report_id}/photos/{photo_id}
修改照片描述
PUT example.com/api/users/{username}/reports/{report_id}/photos/{photo_id}
问题
最佳答案
恕我直言,你建模得很好。
关于 1
我宁愿和resource/id
一起去而不是查询参数。但是建模时必须记住的一件事是代理缓存机制等。所以不要忘记标题。
我去寻找用于过滤和那些排序的查询参数。
关于登录,凭据应该在标题中,不需要特定的资源。只需应用每个资源安全性。
关于web-services - 分层 RESTful URL 设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7833548/