【发布时间】:2018-11-27 04:06:12
【问题描述】:
在 .Net Core 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/schools/{id}/students
进入 SchoolsController 或 StudentsController?我很想把它放在 SchoolsController 下,因为路线表明这是关于学校的。但是,它返回学生,所以也许它在 StudentsContoller 中服务更好?或者我应该创建一个新的 SchoolsStudentsController 吗?
-
会
/api/schools{id}/students
如果暴露成这样可能会更好:
/api/students?schoolId={id}
我觉得第一个选择更“RESTful”,但也许第二个选择也不错,因为我所做的只是返回一个学生列表,过滤到特定学校。如果我选择第二个选择,那么毫无疑问将代码粘贴到哪个控制器(逻辑上它会进入 StudentController)
我不确定 RESTful 架构中是否有任何关于此的最佳实践...谢谢
【问题讨论】:
标签: rest url controller uri asp.net-core-webapi