【问题标题】:Naming convention for REST endpoint where ID is not provided by request请求未提供 ID 的 REST 端点的命名约定
【发布时间】:2019-03-29 11:07:14
【问题描述】:

我遇到了一个小问题,我似乎无法确定如何命名特定 API 端点。

资源结构如下:

students/{student-id}/exams

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

我想过将端点命名为:

POST students/current-session/exams

但这对我来说似乎不对。

那么,您会建议为这个端点取一个好的 RESTful 名称吗?我不能使用查询参数,因为这是一个 POST。

【问题讨论】:

    标签: rest api naming-conventions


    【解决方案1】:

    REST 不关心标识符的拼写。你可以使用任何你喜欢的东西。

    consider 有很多可能的候选人,他们都很好。

    没有什么特殊原因需要将此用例使用的标识符与 students 层次结构对齐 - 如果它使您的实现更简单,很好,但对消费者没有特别的优势。

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

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

    【讨论】:

    • 谢谢,回答了我的问题
    猜你喜欢
    • 1970-01-01
    • 2021-07-01
    • 2021-06-03
    • 2021-05-25
    • 1970-01-01
    • 2021-12-30
    • 1970-01-01
    • 1970-01-01
    • 2020-11-14
    相关资源
    最近更新 更多