RESTful uri:/rest/course/module/prblem/solution vs/rest/solution

RESTful uri:/rest/course/module/prblem/solution vs/rest/solution,rest,django-rest-framework,backend,Rest,Django Rest Framework,Backend,我正在为分层数据设计一个RESTful接口: course > module > problem > solution 但我无法决定访问“解决方案”资源的URL应该是什么。以下是我选择的两个选项,例如,检索全局唯一PK=3的解决方案: /courses/2/modules/5/problems/2/solutions/3 /solutions/3/ 关于这两个选项中哪一个更可取,有什么建议吗 每当我必须提出URL时,我总是问自己(在这种情况下) 解决方案资源是否可以不存在问

我正在为分层数据设计一个RESTful接口:

course > module > problem > solution
但我无法决定访问“解决方案”资源的URL应该是什么。以下是我选择的两个选项,例如,检索全局唯一PK=3的解决方案:

/courses/2/modules/5/problems/2/solutions/3
/solutions/3/

关于这两个选项中哪一个更可取,有什么建议吗

每当我必须提出URL时,我总是问自己(在这种情况下)

解决方案资源是否可以不存在问题、模块或课程

是->
/solutions/3

否->
/courses/2/modules/5/problems/2/solutions/3

如果一个解决方案需要存在一个问题,即它属于一个问题,那么使用短url是没有意义的


另一种方法是:
在后端,您是否需要问题的引用才能获取解决方案

否->
/solutions/3


是->
/courses/2/modules/5/problems/2/solutions/3

谢谢,这很有帮助!如果有人必须访问所有解决方案,该怎么办?使用第二个选项,他们只需进入
GET/solutions
并获取所有解决方案,而使用第一个选项…?@SteveK通过一个请求或多或少地获取所有解决方案的能力表明,解决方案是一种可以独立存在的资源。那么长url就没有多大意义了:-)(或者您必须创建后端,以便它收集所有课程、所有模块、所有问题以及属于它们的所有解决方案,但这将是低效的)