REST端点的命名约定,其中请求未提供ID

时间:2018-10-24 23:02:37

标签: rest api naming-conventions

我有一个小问题,我似乎无法弄清楚如何命名特定的API端点。

资源结构如下:

students/{student-id}/exams

使用POST请求,我想向特定学生添加新考试。但是,请求中未提供用于查询学生集合的学生ID。相反,API逻辑根据当前用户会话检索学生的ID。

我考虑过这样命名端点:

POST students/current-session/exams

但这对我来说似乎不正确。

那么,对于此端点,您建议使用一个好的RESTful名称吗?我无法使用查询参数,因为这是POST。

1 个答案:

答案 0 :(得分:1)

REST不在乎标识符的拼写。您可以使用任何喜欢的东西。

consider的候选人很多,都很好。

没有特别的理由,该用例中使用的标识符需要与students层次结构保持一致-如果它使您的实现更简单,更好,但对于消费者而言则没有特别的优势。

/my/exams
/students/current/exams
/777BC64D-AE19-4544-9757-E305188E9237
/777BC64D-AE19-4544-9757-E305188E9237/exams

这些都很好。在很多方面,为资源标识符选择拼写就像为变量名选择拼写一样-仅对正在阅读它的人真正重要。