【发布时间】:2017-04-25 22:50:38
【问题描述】:
我已经阅读了许多其他关于如何安静地设计多对多关系的帖子;但是,我找不到我想要的答案。
基本上,我在数据库中有 2 个表和另一个连接这 2 个表的多对多表。 为简单起见,我们称它们为:
- 课程(CourseID, CourseName)
- 讲师(InstructorID,InstructorName)
- CourseInstructor(CourseID、InstructorID、lectureRoomName)(多对多)
我有两个问题:
1) 我应该如何获取 CourseInstructor 表中的所有条目。
GET /courses/instructors 正确吗? (或GET /instructors/courses 或两者兼有)
或者我应该有一个名为 /coursesinstructors 的单独端点
2) 我还希望能够通过传入 CourseName 来获取 CourseInstructor 表中的所有行。
如果我正在寻找课程,我想我通常会这样做,/courses?name=coursename。而且,我可能会使用端点/courses/{courseId}/instructors/{instructorId} 在多对多表中搜索特定条目。
因此,我很好奇这样的工作:/courses?name=coursename/instructors(这甚至可能吗?)
另一种选择是使用另一个名为/coursesinstructors 的端点,我可以使用/courseinstructor?name=coursename 来获得结果。
或者我应该通过以下方式拨打 2 次电话以获得结果:
- 通过/courses?name=coursename获取id
- 并关注courses/{id}/instructors
除了我上面提出的建议和解决方案之外,我对任何其他建议和解决方案持开放态度(无论如何我不确定我的解决方案是否正确)。
【问题讨论】:
标签: rest api many-to-many relationship restful-url