用于获取对象列表的 REST(GET 方法)命名

REST( GET method ) naming for getting a list of list of objects

我有一个 courses 的列表和一个 students 的列表。这个想法是一个学生可以参加多门课程。

要求 return 一个统一的课程学生列表,其中“键”类似于 courseId + studentId。 GET 结果将类似于:

我的问题是,哪种方法是定义此 REST GET 方法的最佳方法。我有两个解决方案,欢迎任何想法。

  1. GET:api-name/v1/courses/students?version=5 - mening return 来自所有课程的所有学生
  2. GET:api-name/v1/courses-students?version=5 - 在这种情况下,是一种专用方法,如 courses-students

欢迎任何想法。非常感谢!

更新: 我打算使用解决方案 2。 此外,这种关系可以被视为新资源的说法是一个强有力的论据。

我会打赌第二个选项,因为你正在公开一个新资源,这是课程和学生之间的关系 - 甚至可以通过与两个 ID 相关的“密钥”来识别。

使用此选项可能会允许您,例如,使用键查找新资源,或使用查询字符串参数过滤此新资源(例如 api-name/v1/courses-students?courseId=12,45&studentId=32,67),或请求个别课程的学生 (api-name/v1/courses/{courseId}/students),或个别学生的课程 (api-name/v1/students/{studentId}/courses)。

有一个关于这个主题的问题有很好的答案 here