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

用于获取对象列表的REST(GET方法)命名,rest,methods,naming-conventions,naming,Rest,Methods,Naming Conventions,Naming,我有一个课程列表和一个学生列表。这个想法是一个学生可以参加多种课程 要求返回统一的课程学生列表,其中“键”类似于courseId+studentId。获取的结果如下所示: courseId,courseName,studentId,studentName 我的问题是,定义REST-GET方法的最佳方法是什么。我有两种解决方案,欢迎提出任何想法 GET:api name/v1/courses/students?version=5-所有学生从所有课程返回 GET:api name/v1/cour

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

要求返回统一的课程学生列表,其中“键”类似于
courseId+studentId
。获取的结果如下所示:

  • courseId,courseName,studentId,studentName
我的问题是,定义REST-GET方法的最佳方法是什么。我有两种解决方案,欢迎提出任何想法

  • GET:api name/v1/courses/students?version=5
    -所有学生从所有课程返回
  • GET:api name/v1/courses students?version=5
    -在本例中,是作为课程学员的专用方法
  • 任何想法都欢迎。非常感谢

    更新: 我打算使用解决方案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


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

    谢谢你的建议和其他帖子的链接。我还打算使用解决方案2。不客气!如果您同意并且这满足了您的问题,请用以下答案结束主题:)