GET 与 POST - RESTful 文档生成和下载

cjc*_*isa 4 rest post get

我正在编写一个 RESTful API,客户端可以在其中请求生成报告。该报告没有 ID,也不独立于该请求而存在。报告请求有许多参数:大约 10 个(报告类型、要查询的实体 ID、日期范围、其他说明符)。

但是,初次下载后将无法再次访问。这应该是 POST 请求还是 GET 请求?我看到了两者的论点,但出于一些原因,我觉得 POST 更 RESTful。首先,没有请求,报告就不存在。其次,如果我们决定添加缓存层,这肯定是 POST,因为请求具有创建报告的副作用,那么我们将保存密钥并返回缓存的报告。但是,目前我们还没有进行任何缓存(尽管将来可能会改变)。

想法?

Eri*_*ein 5

执行POSTto/reports创建报表实例。在响应中返回报告表示形式。GET您稍后可以选择是否存储报告和支持。

如果不出意外的话,我想说使用GET违反了最小惊讶原则。此外,它可能会限制 API 的未来增长。