在Rest API中,端点遵循的惯例是避免将它们命名为动词,如 getAllStudents. 但我最近面临的问题是,如何证明验证端点的合理性。例如,我想验证一个用户的指纹。
我应该给这个端点取什么名字呢?我想到的一个方法是 POST user{id}verify-FP. 这是正确的吗?
我想做一个端点来获取用户是否被锁定。为此我想不出任何名字。请注意,我不想返回任何用户数据,我只想返回是否为真或假,所以GET 用户{id} 对我来说是行不通的。
在某些情况下,"良好的REST设计 "肯定不是每个用例的最佳方法。虽然可以坚持REST惯例,严格从传输端点的完整状态来考虑,不要在URI中使用动词等,但对于某些类型的操作,如你这样做的痛苦可能是不值得的。
这样的端点当然感觉更像RPC,而且更适合。所以使用 POST
在一个命名良好的端点,如 /user/{id}/verify-fp
似乎是一个很好的破例的地方。
对于你的第一个用例, /fpverification/{id}/verify
工作就可以了。虽然如果你用的是主键,更简单的方法是。
fpverification/<int:pk>/verify
为了检查锁,我会把它嵌套在用户路径下。所以你的端点可以是这样的。
users/<int:pk>/validate
或者,如果你经常检查锁的状态, 你可以在用户有效载荷中包含truefalse状态 当一个请求被发送到原始链接时。