我想构建一个RESTFUL API。请求在休息API中运行任务
我有一个任务计划的资源。
客户端应该请求服务器在其中一个任务计划度量标准上运行任务,如基准测试。
应该使用哪个请求。 POST或GET?
什么是uri?
/api/plans/<id>/run or /api/plans/run/<id> ?
我想构建一个RESTFUL API。请求在休息API中运行任务
我有一个任务计划的资源。
客户端应该请求服务器在其中一个任务计划度量标准上运行任务,如基准测试。
应该使用哪个请求。 POST或GET?
什么是uri?
/api/plans/<id>/run or /api/plans/run/<id> ?
GET请求用于读取/获取数据。 POST请求用于创建数据。
如果用户只是需要查看基准测试运行的结果,那么我会使用GET请求来返回计划的基准测试结果。
对于检索单个记录,URL约定是/things/:id
,所以我建议api/plans/:id/run
。我还建议将run
重命名为更具描述性的内容,例如benchmark
或metrics
。
我会去参加一个POST,既然是针对特定计划的操作,则网址应该是plans/id?action=run
。
运行不是计划的一个子集,以便查询参数必须在这种情况下
对资源的操作使用POST是根据RESTful标准? –
在一般的使用'POST'使用,因为'GET'是幂等和安全运行。由于“POST”请求的语义完全取决于您,您可以使用它向服务器发出进程触发器。如果处理过程可能需要一些时间,请确保返回一个'202 Accepted'响应代码,包括指向资源的'Location' HTTP响应头,客户端可以在进程的当前状态上更多地使用该资源。一个真正的RESTful服务(和客户端)并不关心URI的形式,尽管最佳实践建议避免动词作为资源名称,因为它们传递的是RPC语义 –