【发布时间】:2016-11-29 07:41:42
【问题描述】:
我正在为测试和测试运行元数据设计一个 RESTful API。我有两个资源:Test 和 TestRun。在后台,它们在数据库中具有一对一的关系。
首先我通过将POST 发送到api/v1/test 来创建Test 资源。
那么我必须开始这个测试。我通过向api/v1/test/{id}/run 发送POST 来做到这一点,这会创建一个与Test 资源相关的TestRun 资源。
然后我也可以通过向api/v1/test/{id}/finish 发送POST 来停止测试,这会修改相应的TestRun 资源(设置一些字段,例如finish_time、result 等)。
API 的用户永远不会拥有GET 访问TestRun 资源的权限,只能通过其相关的Test 资源访问它们。
虽然这种设计对于 API 用户来说看起来非常简单,但我怀疑这对于开发人员来说也同样简单。我想出的这个设计够好吗?它是否违反任何 REST 原则或最佳实践?对此我将不胜感激。
整个 API 的扩展设计说明:https://gist.github.com/Ch00k/27724e29ec1bf044ebbfdabef9e842d5
【问题讨论】:
-
'我怀疑这对开发人员来说也很简单'。可能是什么问题?
-
@Lutz Horn 这显然是一个错误的问题 :) 我只是想知道我这样做是否是个好主意,以及它是否不违反 REST 最佳实践。
标签: rest api-design