我有一个小问题,我似乎无法弄清楚如何命名特定的API端点。
资源结构如下:
students/{student-id}/exams
使用POST请求,我想向特定学生添加新考试。但是,请求中未提供用于查询学生集合的学生ID。相反,API逻辑根据当前用户会话检索学生的ID。
我考虑过这样命名端点:
POST students/current-session/exams
但这对我来说似乎不正确。
那么,对于此端点,您建议使用一个好的RESTful名称吗?我无法使用查询参数,因为这是POST。
答案 0 :(得分:1)
REST不在乎标识符的拼写。您可以使用任何喜欢的东西。
consider的候选人很多,都很好。
没有特别的理由,该用例中使用的标识符需要与students
层次结构保持一致-如果它使您的实现更简单,更好,但对于消费者而言则没有特别的优势。
/my/exams
/students/current/exams
/777BC64D-AE19-4544-9757-E305188E9237
/777BC64D-AE19-4544-9757-E305188E9237/exams
这些都很好。在很多方面,为资源标识符选择拼写就像为变量名选择拼写一样-仅对正在阅读它的人真正重要。