在.NET核心2.1 Web API中,假设我有两个模型:
Student
School
和两个控制器:
StudentsController
SchoolsController
API公开这些端点以访问这些资源:
/api/students
/api/students/{id}
/api/students/{id}/school
/api/schools
/api/schools/{id}
/api/schools/{id}/students
我有两个问题:
-
应该
/API/学校/ID/学生
去学校还是学生学校?我很想把它放在学校的控制之下,因为路线表明这是关于学校的。但是,它会回报学生,所以也许它会更好地服务于学生收费站?或者我应该创建一个新的学生控制器?
-
会
/API/学校ID/学生
如果暴露在以下环境中可能会更好:
/api/students?schoolId={id}
我觉得第一个选择更“安静”,但也许第二个选择也很好,因为我所做的就是返回一个学生名单,过滤到一个特定的学校。如果我选择了第二个选项,那么毫无疑问,代码应该插入哪个控制器(从逻辑上讲,它将进入学生控制器)。
我不确定在RESTful体系结构中是否有任何与此相关的最佳实践…谢谢