首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Restful设计

Restful设计
EN

Stack Overflow用户
提问于 2015-03-25 07:58:47
回答 2查看 72关注 0票数 0

假设应用程序的域结构如下:

  1. 有一个叫做Department的域对象。
  2. 有一个名为Student的域对象。
  3. 有一个名为纸张的域对象。
  4. 学生和系之间的关系是多对多的.
  5. 学生可以为自己或某一系发表(创作)论文。
  6. 学生可以查看他本人和他所属的系所发表的所有论文(后者包括属于同一系的其他学生发表的论文)。

以下是我认为restful uri设计应该是什么样的

  1. 学生为自己创建(张贴)白皮书: /学生/{studentid}/papers
  2. 学生为某一部门创建(张贴)白皮书 /students/{studentid}/departments/{departmentid}/papers
  3. 让他为自己出版的所有学生论文/学生/{学生}/论文/自我
  4. 取得他自己发表的所有学生论文,包括他所属的系/学生//papers的论文
  5. 对于第1和第2点,类似的get请求。

达到上述终点的另一种方法是(只考虑第1点和第2点):

/学生/{studentid}/papers

然后在请求体中通过部门。应用程序将检查请求中是否存在departmentId。如果它不是空的,那么它将假设这篇论文是为给定的部门发表的,或者是为学生本人发表的。

以上哪一种方法更好呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-25 09:58:00

这个链接可以帮助您设计RESTful服务:https://templth.wordpress.com/2014/12/15/designing-a-web-api/

此外,以下是我对您的URL的评论:

  • 标识资源的所有内容都应该在资源路径中(例如,departmentid)。
  • 关于关系,我们需要确定哪些URL将处理引用。例如,/students/{studentid}/departments/{departmentid}/papers将允许将现有的文件附加到某个部门或创建一个新的文件,并将其附加到部门。
  • 我不明白这个url:/students/{studentid}/papers/self,特别是令牌selfself是指当前经过身份验证的用户吗?如果是这样的话,我认为应该使用查询参数,因为它并不真正对应于资源.实际上,您更愿意使用查询参数进行列表筛选。

希望它能帮到你,蒂埃里

票数 1
EN

Stack Overflow用户

发布于 2015-03-25 08:02:45

因为departmentid是如何识别资源的一部分,所以它必须是URL的一部分。将其放入请求体是违反REST原则的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29250225

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档